[英]SQL how to return a value only if occurs more than 2 times
所以我基本上有一个名为“ teams”的表,其中包含团队名称和团队ID。 我还有另一个表,称为玩家,大多数玩家都通过名为teamID的列链接到团队。 所以我需要一个SQL查询,该查询返回链接了2个或更多球员的所有团队。 据我了解,这不能用1个查询来完成。 所以我想做的是返回每个teamID及其在表中出现的次数。 我该怎么做?
因此,我的第二个查询将仅选择出现两次或两次以上的teamID
团队表:
|id|teamName|
|1 |scorpions|
|2 |dragons |
玩家表:
|id|teamID|name|
|1 |1 |mark|
|2 |1 |rob|
|3 |2 |bob|
所以我最后需要的是整个队伍表减去分配了少于2名球员的队伍
因此对于示例数据,它仅应返回:
|id|teamName|
|1 |scorpions|
可以在一个查询中完成:
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名以上玩家的团队。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.