У меня есть небольшая проблема с левым объединением, где мне нужен список дизайнов и по каждому дизайну я хочу показать, сколько комментариев у каждого дизайна есть.count в LEFT JOIN и WHERE
Я использую LEFT JOIN
SELECT ds.*, count(com.comment) AS countcom FROM tdic_designs ds
LEFT JOIN tdic_comments com ON (com.design_id = ds.id)
WHERE ds.approved = 1 AND ds.hidden = 0 AND com.approved = 1
GROUP BY ds.id
ORDER BY ds.date_added ASC
Но это не работает, как он отображает только один дизайн, который есть 1 комментарий, но у меня есть два проекта, в таблице, где вторая конструкция не есть комментарий.
Если изменить SQL в
SELECT ds.*, count(com.comment) AS countcom FROM tdic_designs ds
LEFT JOIN tdic_comments com ON (com.design_id = ds.id)
GROUP BY ds.id, com.approved, ds.approved
ORDER BY ds.date_added ASC
Это является удаление ИНЕКЕ. Но это плохо, поскольку он будет выбирать как проекты, так и комментарии, которые не были одобрены.
Что я пропускаю/делаю неправильно?
'MySQL', я полагаю? – Quassnoi