我有兩個表。MySQL COUNT查詢加入
第一張表是成員表
MEMBER TABLE
ID | NAME
1 | User
2 | Another User
3 | Some other User
,第二個表是朋友
FRIENDS TABLE
ID | member_id | Friend Name | Notified
1 | 1 | Friend #1 | 0
2 | 1 | Friend #1 | 1
3 | 2 | Friend #1 | 0
4 | 1 | Friend #1 | 1
5 | 2 | Friend #1 | 1
我喜歡做的事情是讓成員表信息,而且還得到總的通知每個成員的朋友。
我直到現在做是
SELECT
M.ID
M.NAME
COUNT(F.notified)
FROM
MEMBER AS M
LEFT JOIN
FRIENDS AS F
ON
F.member_id = M.id
WHERE
F.notified = 1
GROUP BY
M.id
但是,這不是爲我工作,因爲如果我有沒有通知朋友一員,查詢不會在結果中包括在內。
在上面的代碼中,例如ID 3的成員將不會包含在我的結果中。
有關如何修改該查詢以便返回甚至沒有通知朋友的成員的任何想法?
親切的問候 Merianos尼科斯
尼斯。但是,您甚至不需要這種方法使用「GROUP BY M.id」。 – 2012-07-07 08:43:31
這將對成員表中的每條記錄運行一個單獨的子查詢,隨着成員表的增長,這可能會很快開始影響性能。 Ypercube的答案是這樣做的更好的方式,因爲它不會有這些問題。 – Braiba 2012-07-07 10:14:29