假设我有下表:
id | person_id | department_id
------------------------------
1 | 1 | 2
2 | 1 | 3
3 | 1 | 4
4 | 3 | 2
5 | 3 | 5
6 | 5 | 4
7 | 6 | 4
8 | 9 | 4
我想在同一时间查询属于多个部门的人员。 例如:属于(2,5)部门的人是第3人,他是唯一的人。
我经常搜索并尝试自己做,但我找不到办法。
P.S。我已经使用'for'循环完成了它,但我正在寻找快速和原生的SQL解决方案。
答案 0 :(得分:3)
您可以使用group by
和having
:
select t.person_id
from followingtable t
where t.department_id in (2, 5)
group by t.person_id
having count(*) = 2;