使用count()左外连接?

时间:2014-09-30 18:52:53

标签: mysql sql

考虑以下表格:

列表

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?

只显示第一个列表?这是为什么?

2 个答案:

答案 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