我有三个表:users,active_users和teams。
users: id, name
active_users: userId, teamId
teams: id, name
active_users将用户和团队“链接”在一起,以便用户可以属于多个团队,团队可以拥有多个用户。
假设我有5支身份来自1-5的球队
编写仅显示属于团队1,2和4的用户的查询的最佳方法是什么?
答案 0 :(得分:1)
我喜欢使用group by
和having
来解决这些问题。所以,这是一种方式:
select au.userId
from active_users au
where au.teamId in (1, 2, 4)
group by au.userId
having count(*) = 3;
这假设active_users
没有重复。如果是,则在count(distinct)
子句中需要having
。