我正在學習有關SQL中的連接和計數表,但我遇到了一些困難。無論什麼時候我加入桌子,當它不應該放在首位的時候,它的數量就會猛增。加入兩個表,計數計數太高SQL
select foo.parts as foo_parts, count(foo.colours)
from bar, foo
group by foo.parts;
酒吧表應該用於以後使用「具有」比較「foo.bar」,但我工作的第一固定這一部分。
我正在學習有關SQL中的連接和計數表,但我遇到了一些困難。無論什麼時候我加入桌子,當它不應該放在首位的時候,它的數量就會猛增。加入兩個表,計數計數太高SQL
select foo.parts as foo_parts, count(foo.colours)
from bar, foo
group by foo.parts;
酒吧表應該用於以後使用「具有」比較「foo.bar」,但我工作的第一固定這一部分。
你可能缺少join
clausule
SELECT bar.id, foo.parts as foo_parts, count(foo.colours)
FROM bar
JOIN foo
ON bar.id = foo.id
group by bar.id, foo.parts;
你缺少了很多的問題的信息(例如,有多少行,預計數等等等等)。但語法
from bar, foo
創建一個笛卡爾乘積,這意味着你會得到兩個表中各行的每一組合。它將條形圖中的每一行與foo中的每一行相結合。
所以預期的計數是count(bar)* count(foo)。
這在實踐中非常罕見。你可能正在尋找像Juan這樣有條件的加入。
顯示您的架構。 bar和foo表的結構是什麼? – Adish
這是跨連接,也是你永遠不應該使用隱式連接的主要原因之一。請停止使用20年前更換的這種技術。 – HLGEM