考虑以下表格:
列表:
id name
1 somename
2 someothername
引线:
id list
1 1
2 1
3 1
我目前有以下查询:
SELECT lists.*, count(leads.id)
FROM lists
LEFT OUTER JOIN leads ON lists.id =leads.list
为什么只显示第一个列表,而不是同时显示两个? 列表1和count = 3,列表2的count = 0?
只显示第一个列表?这是为什么?
答案 0 :(得分:3)
要对COUNT()
aggregation进行分组,您需要使用GROUP BY
:
SELECT
lists.id, count(leads.id)
FROM
lists
LEFT OUTER JOIN leads
ON lists.id =leads.list
GROUP BY
lists.id
答案 1 :(得分:0)
您从leads
左侧加入lists
,从leads
(仅包含列表1)中选择所有值,并且只选择来自lists
的值比赛。相反:LEFT OUTER JOIN lists ON lists.id =leads.list