У меня есть две таблицы, как complaints
и attachments
MySQL левое соединение со счетом из правой таблицы, включая нулевую
Я хочу, чтобы перечислить все жалобы вместе с их подсчетом вложений (только подсчитывает). Если записей не найдено из правой таблицы (attachments
), то 0 в качестве количества подключений.
Я использую этот запрос,
SELECT c.*, IFNULL(COUNT(p.pic_id), 0) FROM complaints c
LEFT JOIN attachments p
ON c.compl_id = p.compl_id
ORDER BY comp_date DESC
Но это просто возвращает, что строки, которые присутствуют в правой таблице (attachments
таблицы). Я просто хочу перечислить все строки из таблицы complaints
вместе с соответствующим количеством подключений (если не считать 0).
Таблицы:
complaints
============
compl_id
cust_id
cust_msg
comp_date
attachments
============
pic_id
compl_id
EDIT:
complaints
===============
comp1 cust1 abcd 1/1/2015
comp2 cust5 hey 1/1/2015
comp3 cust60 hello 1/1/2015
attachments
===============
a_34554sdfs comp2
1_idgfdfg34 comp2
Я хочу иметь результаты, как это,
comp1 cust1 abcd 1/1/2015 0
comp2 cust5 hey 1/1/2015 2
comp3 cust60 hello 1/1/2015 0
Но в настоящее время, я получаю результат, как это,
comp2 cust5 hey 1/1/2015 2
Агрегатная функция без 'группы by'? –
Жаль, что я новичок в Joins. Я много искал, но не мог заставить его работать. –
В этом случае вам необходимо предоставить некоторые данные образца и ожидаемый результат. –