我有两张桌子 A和B 。在表A(Oracle sql)中,唯一列(非主键)代码可能在表B中有一些记录。
示例:
代码“A”有3个条目,代码“B”有2个条目,代码“C”在表B中有0个条目。我希望查询显示表B中的代码及其记录数。
A 3
B 2
C 0,
但我没有在表B中获得零记录的代码,即C 0。
请有人帮我查询。
答案 0 :(得分:1)
你做错了什么。这对我有用:
select A.code, Count(B.code) from A
left join B on A.code = b.code
group by A.code
答案 1 :(得分:1)
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
。
答案 2 :(得分:0)
这很简单,你只需要根据你想要的数量来计算" 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