Tengo un pequeño problema con una combinación de la izquierda donde quiero una lista de diseños y en cada diseño quiero mostrar cuántos comentarios tiene cada diseño.cuente en LEFT JOIN y WHERE
estoy usando un 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
Pero eso no funciona, ya que sólo muestra un diseño que tiene 1 comentario, pero tengo dos diseños en la tabla, en el que el segundo diseño no lo hace tener un comentario
Si cambio el SQL para
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
Esa es la eliminación de la cláusula WHERE. Pero eso es malo, ya que seleccionará tanto diseños como comentarios que no hayan sido aprobados.
¿Qué extraño/hago mal?
'MySQL', supongo? – Quassnoi