2

我有 2 张桌子,桌子A和桌子B

A有以下字段:

id(primary key), 
references_id

B也​​有字段:

id(primary_key) 
references_id. 

现在我得到了 的 id A,我需要检索A.idcount(B.references_id)by A.references_id

如何在 SQL 查询中做到这一点?

4

3 回答 3

4

使用LEFT JOIN它仍然会显示,即使它references_id不存在于 table 上B。试试这样的,

SELECT  a.ID, COUNT(b.References_ID) totalCount
FROM    A LEFT JOIN B
            ON a.References_ID = b.References_ID
GROUP BY a.ID
于 2012-10-03T14:42:24.577 回答
1

试试这个:

SELECT A.Id, COUNT(B.references_id)
FROM A
INNER JOIN B A.Reference_ID = B.References_ID
GROUP BY A.Id
于 2012-10-03T14:42:31.583 回答
1

只是为了在那里扔另一个选项,这次是一个相关的子查询:

select a.id, (select count(*) from b where references_id = a.id) as ref_count
from a as a

奇怪的是,这有时可以提供比join and group by解决方案更有效的执行计划。我经常尝试两者。

于 2012-10-03T14:54:25.057 回答