我有一张桌子:user_relationship。我需要选择employee_id的所有行以及包含这些client_id的所有其他行。

id | employee_id | client_id
1  | 365         | 12
2  | 874         | 63
3  | 365         | 48
4  | 471         | 12
5  | 471         | 48
6  | 522         | 90

SELECT * FROM `user_relationship` WHERE `employee_id` = 471

id | employee_id | client_id
4  | 471         | 12
5  | 471         | 48


但是我需要添加到该查询中,以便随后还选择与返回的employee_id相关的所有client_id

id | employee_id | client_id
1  | 365         | 12
3  | 365         | 48
4  | 471         | 12
5  | 471         | 48


我可以帮忙吗?

最佳答案

您将需要使用子查询。这应该工作。

SELECT * FROM `user_relationship` WHERE `client_id` IN (SELECT `client_id` FROM `user_relationship` WHERE `employee_id` = 471)


这是关于https://dev.mysql.com/doc/refman/5.1/en/any-in-some-subqueries.html主题的文档

关于mysql - SELECT *以及与同一表的另一列的ID相关联的所有行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31364166/

10-12 03:49