SQL如何仅在超过2次时返回值

时间:2017-04-29 17:16:37

标签: mysql sql

所以基本上我有一张名为" team"它包含团队名称和团队ID。我还有另一个名为player的表,大多数玩家都链接到一个名为teamID的列。所以我需要的是一个SQL查询,它返回所有拥有2个或更多玩家链接的团队。根据我的理解,这不能用1个查询完成。 所以我想要做的是返回每个teamID及其在表格中出现的次数。我该怎么做?

那么我的第二个查询只会选择出现2次或更多次的teamID

团队表:

|id|teamName|
|1 |scorpions|
|2 |dragons  |

球员表:

|id|teamID|name|
|1 |1     |mark|
|2 |1     |rob|
|3 |2     |bob|

所以我最终需要的是整个球队的桌子减去分配给他们少于2名球员的球队

因此对于样本数据它应该只返回:

|id|teamName|
|1 |scorpions|

1 个答案:

答案 0 :(得分:2)

可以在一个查询中完成:

select t.id as team_id, t.teamName, 
       count(p.id) as player_count
from teams t
join players p on p.teamId = t.id
group by t.id, t.teamName
having count(p.id) > 1

加入表格,由团队分组,只选择那些拥有1名以上球员的球队。