我有兩個表A和B。在表A中(的Oracle SQL),一個唯一的列(未主鍵)代碼可以具有在表B.一些記錄顯示即使計數爲零時從另一個表的一列計數
實施例:
代碼 「A」 有3項,編碼「B 「有2項與代碼‘C’具有表B. 0項我想查詢顯示代碼及其表B.
A 3
B 2
C 0,
的記錄計數,但我沒有得到與零個記錄代碼在表B中,即C 0.
請任何人都可以幫助我的查詢。
我有兩個表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
這裏。
謝謝所有..它適用於我.. :-) – user3615185
你正在做一些不正確的事情。這個工作對我來說:
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
對GROUP BY執行LEFT JOIN並計數。 – jarlh
我試過了..但是沒有正確地得到它..你要告訴我上述場景的確切查詢 – user3615185
向我們展示示例表數據,你的查詢(不能正常工作的)和預期結果! – jarlh