0

请帮助任何人!

例如,我希望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

非常感谢

4

3 回答 3

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) 
)
于 2013-04-12T11:02:02.797 回答
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
于 2013-04-12T11:11:06.820 回答
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
于 2013-04-12T10:59:58.077 回答