Php MySQL不知所措地加入
请帮助任何人 例如,我希望user_id 27返回case_id 1和2,因为具有相同公司的另一个user_id创建了这些案例 用户ID27就是一个例子,因为表非常大,所以我需要一个通用的SQL语句 CodeIgniter活动查询非常有用,但可能太复杂了Php MySQL不知所措地加入,php,mysql,sql,codeigniter,codeigniter-2,Php,Mysql,Sql,Codeigniter,Codeigniter 2,请帮助任何人 例如,我希望user_id 27返回case_id 1和2,因为具有相同公司的另一个user_id创建了这些案例 用户ID27就是一个例子,因为表非常大,所以我需要一个通用的SQL语句 CodeIgniter活动查询非常有用,但可能太复杂了 Cases case_id | case_user | case_name 1, 25, Test Case A 2, 25, Test Case B 3, 26, Test Case C Users user_id | user_email
Cases
case_id | case_user | case_name
1, 25, Test Case A
2, 25, Test Case B
3, 26, Test Case C
Users
user_id | user_email | user_company
25, example-email-a, Company Alpha
26, example-email-b, Company Beta
27, example-email-c, Company Alpha
非常感谢试试这个。对于用户id 27,它不是返回案例id 1和2,而是 对于用户id 25,返回案例id 1和2
SELECT * FROM `Users`
LEFT JOIN `Cases` ON `Users`.`user_id`=`Cases`.`case_user`
WHERE `Users`.`user_id`=25
试试这个:
SELECT * FROM Cases
WHERE case_user IN
(SELECT user_id FROM Users WHERE user_company=(
SELECT user_company FROM Users WHERE user_id=27)
)
这是用于显示为示例输出的数据u
SELECT S1.USER_ID, C.CASE_ID
FROM USERS S1
JOIN USERS S2
ON S1.USER_ID <> S2.USER_ID
AND S1.USER_COMPANY = S2.USER_COMPANY
JOIN CASES C
ON S2.USER_ID = C.CASE_USER
两张桌子之间的关系是什么?在这种情况下,您可以使用!=接线员,但这对更大的桌子没有帮助。例如,两个表中都应该有与user_company相关的,因此每次调用query时都可以进行适当的联接。您认为它会返回user_id=27,case_id=1,下一行case_id=2,我认为它会显示NULLsThanks这很好,我还需要返回发起人的电子邮件地址,因此对于案例1和案例2,我需要用户\u email=example-email-a。啊太复杂了。再次感谢您选择*从案例加入用户上的用户。用户\u id=案例。案例\u用户中的案例\u用户从用户中选择用户\u id从用户中选择用户\u公司=从用户\u id=27的用户中选择用户\u公司