首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用count运算符获取表的子集

如何使用count运算符获取表的子集
EN

Stack Overflow用户
提问于 2019-03-04 08:34:32
回答 1查看 25关注 0票数 0

SQL Server 2012。

每个企业都有一个或多个团队。每个团队可以有赞助商,也不能有任何赞助商。

代码语言:javascript
复制
Enterprise

Id    Name
1      A
2      B
3      C

和团队表:

代码语言:javascript
复制
Team

Id    Name    EnterpiseId
1      For         1
2      Xor         2
3      Nor         2
4      Xur         1
5      Fir         3
6      Fte         2

现在是餐桌赞助商

代码语言:javascript
复制
Sponsor

id     Name    TeamId
1      XX1        1
2      FC7        1
3      89U        3

现在我需要知道如何显示这个表,该表只显示至少有一个赞助商的企业。

代码语言:javascript
复制
FINAL TABLE

Id    Name
1      A
3      C

企业B有3个团队,但这3个团队没有赞助商,所以我想展示拥有赞助商的企业,即"A“和"C”。

代码语言:javascript
复制
Select A.id, A.name
FROM Enterprise A
LEFT JOIN Team B on A.Id=b.EnterpriseId
INNER JOIN Sponsor C on B.Id=C.TeamId
Where (SELECT COUNT(*) FROM Sponsor S INNER JOIN Team T on T.id=S.TeamId group by T.id)>0

这不管用。我不习惯使用子集,这可能是实现所需表格的方法。谢谢。

EN

回答 1

Stack Overflow用户

发布于 2019-03-04 08:51:29

您可以使用JOINs来完成此操作。GROUP BY只是为了消除重复项:

代码语言:javascript
复制
SELECT e.id, e.name
FROM Enterprise e JOIN
     Team t
     ON e.Id = t.EnterpriseId JOIN
     Sponsor s
     ON t.Id = s.TeamId
GROUP BY e.id, e.name;

JOIN只匹配有赞助商的球队。

如果您要查找多个,则会调用类似于HAVING COUNT(*) > 1的代码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54975219

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档