我有 2 张桌子,桌子A
和桌子B
。
表A
有以下字段:
id(primary key),
references_id
表B
也有字段:
id(primary_key)
references_id.
现在我得到了 的 id A
,我需要检索A.id
和count(B.references_id)
by A.references_id
。
如何在 SQL 查询中做到这一点?
使用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
试试这个:
SELECT A.Id, COUNT(B.references_id)
FROM A
INNER JOIN B A.Reference_ID = B.References_ID
GROUP BY A.Id
只是为了在那里扔另一个选项,这次是一个相关的子查询:
select a.id, (select count(*) from b where references_id = a.id) as ref_count
from a as a
奇怪的是,这有时可以提供比join and group by
解决方案更有效的执行计划。我经常尝试两者。