我正在学习如何在SQL中加入和计算表,但我遇到了一些困难。每当我加入桌子时,当它不应该在第一位时,计数就会飙升。
select foo.parts as foo_parts, count(foo.colours)
from bar, foo
group by foo.parts;
条形表应该稍后用于比较使用“having”的“foo.bar”,但我正在努力修复此部分。
答案 0 :(得分:2)
你可能错过了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;
答案 1 :(得分:1)
你在问题中缺少很多信息(比如有多少行,预期数量等等)。但语法
from bar, foo
创建一个笛卡尔积,这意味着您可以获得两个表中的每个行组合。它将bar中的每一行与foo中的每一行组合在一起。
所以预期的数量是count(bar)* count(foo)。
这在实践中非常罕见。你可能正在寻找像Juan建议的条件连接。