我有两张桌子A 和 B。在表A(Oracle sql)中,唯一列(不是主键)代码可能在表B中有一些记录。
例子:
代码“A”有 3 个条目,代码“B”有 2 个条目,代码“C”在表 B 中有 0 个条目。我希望查询显示代码及其在表 B 中的记录数。
A 3
B 2
C 0,
但我没有得到表 B 中记录为零的代码,即 C 0。
请任何人都可以帮助我进行查询。
GROUP BY
解决LEFT JOIN
方案:
select a.code,
a.name,
count(*)
from A a
LEFT JOIN B b ON a.code = b.code
group by a.code, a.name
相关子查询解决方案:
select a.code,
a.name,
(select count(*) from B b where a.code = b.code)
from A a
也许你需要在SELECT DISTINCT
这里做。
你做错了什么。这对我有用:
select A.code, Count(B.code) from A
left join B on A.code = b.code
group by A.code
这很容易,您只需要像我做“A.code”一样根据您想要计数的列,不要忘记按该列分组,并使用COUNT()。检查以下解决方案
select A.code, Count(B.code) AS Count
from A
left join B on A.code = b.code
group by A.code