2014-09-30 105 views
0

考慮這些表:用count()連接LEFT OUTER JOIN?

名單

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,計數= 3,列表2計數= 0?

只有第一個列表顯示?爲什麼是這樣?

+2

您需要'group by lists.id'在查詢結束 – 2014-09-30 18:54:16

回答

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 
+0

該死的..謝謝!現在我已經繞了一圈了! – 2014-09-30 18:55:59

0

你左側的接合部從leadslists,它選擇從leads所有的值(其中只有表1),只值從lists哪裏有一場比賽。相反:LEFT OUTER JOIN lists ON lists.id =leads.list