2009-04-30 5 views
1

Этот запрос:COUNT (*) и LEFT JOIN

SELECT staff.staff_id, COUNT(references_table.staff_id) 
FROM staff 
LEFT JOIN references_table USING (staff_id) 

возвращает это:

staff_id COUNT(references_table.staff_id) 
1   2 

Как я могу получить его, чтобы возвратить 0 как кол для staff_ids, которые не имеют никаких ссылок ?

ответ

1

Попробуйте левое внешнее соединение.

+0

'OUTER' в 'LEFT OUTER JOIN' является излишним в MySQL синтаксис –

+0

я был под впечатлением, что LEFT JOIN и LEFT OUTER JOIN были синонимами. – Matthew

+0

Мой плохой. Я не видел тег MySql. – NotMe

5

оговорка GROUP BY будет делать трюк

SELECT staff.staff_id, COUNT(references_table.staff_id) 
FROM staff 
LEFT JOIN references_table USING (staff_id) 
GROUP BY staff.staff_id 
+0

Да, да! Спасибо, сэр! – Matthew

+0

Upvoting ваш. Это лучший ответ. – NotMe