MySQL加入亏本

时间:2013-04-12 10:57:11

标签: php mysql sql codeigniter codeigniter-2

请帮助任何人!

我想,例如,user_id 27返回case_id 1和2,因为另一个具有相同公司的user_id已经创建了案例。

用户ID 27是一个示例,因为该表非常大,因此我需要以某种方式使用通用SQL语句。

CodeIgniter Active Query非常有用,但可能过于复杂?

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

非常感谢

3 个答案:

答案 0 :(得分:1)

试试这个:

SELECT * FROM Cases 
WHERE case_user IN 
(SELECT user_id FROM Users WHERE user_company=(
   SELECT user_company FROM Users WHERE user_id=27) 
)

答案 1 :(得分:0)

试试这个。对于user_id 27,它不是返回case_id 1和2但是 对于user_id 25,它返回case_id 1和2

SELECT * FROM `Users`
LEFT JOIN `Cases` ON `Users`.`user_id`=`Cases`.`case_user` 
WHERE `Users`.`user_id`=25

答案 2 :(得分:0)

这是针对作为示例输出显示的数据。

 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