gpt4 book ai didi

SQL 查询计数 - 连接两个表并获得一个计数,即使它是 0

转载 作者:行者123 更新时间:2023-12-01 14:01:25 26 4
gpt4 key购买 nike

好的,现在正在使用 SQL 2012 进行查询以连接两个表并获取计数。计数是有多少公司与主要公司相关联。此列表存在于同一个表 Contact 中,并且它们都是连接的,因为主要公司的 ID 在次要公司中作为 CompanyID 列出。如果主要有至少 1 个辅助,我可以得到一个计数,但如果主要没有辅助,我似乎无法获得计数,我需要显示 0 值。这是我的 SQL 查询:

SELECT c.ID, c.Company, c.Category, COUNT(c1.ID) AS Secondaries
FROM Contact AS c INNER JOIN Contact AS c1 ON c.ID = c1.CompanyId
WHERE (c.MemberType = 'ORG_M') AND (c1.MemberType = 'ORG_M')
GROUP BY c.ID, c.Company, c.Category

当我这样做时,我会得到这些信息:

ID  Company       Category      Count
1 Company 1 RS_1 1
2 Company 2 RS_1 1
3 Company 3 RS_1 1
4 Company 4 RS_1 1

我缺少的是 0 值,如果公司存在于公司表中但没有关联的二级公司。我怎么得到它?

最佳答案

改用外连接并将where条件移动到连接:

SELECT c.ID, c.Company, c.Category, COUNT(c1.ID) AS Secondaries
FROM Contact AS c
LEFT JOIN Contact AS c1 ON c.ID = c1.CompanyId AND c1.MemberType = 'ORG_M'
WHERE c.MemberType = 'ORG_M'
GROUP BY c.ID, c.Company, c.Category

关于SQL 查询计数 - 连接两个表并获得一个计数,即使它是 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27507972/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com