Tengo 3 tablas:MySQL - LEFT JOIN y COUNT()
- foros
identificación, nombre, descripción
- hilos
thread_id, forum_id, user_id, título, contenido, vistas
- mensajes
post_id, thread_id, autor_id, contenido, fecha
Lo que quiero hacer es obtener todos los hilos en un foro y obtener el recuento de publicaciones de cada hilo. Así que obtengo cada hilo (DONDE forum_id = lo que sea) y luego I LEFT JOIN con las publicaciones de la tabla para contar los resultados. Pero algo no está funcionando. Aquí está mi consulta:
SELECT t.*, u.nick, COUNT(p.post_id) AS postcount
FROM
threads t
LEFT JOIN
users u
ON
u.id = t.user_id
LEFT JOIN
posts p
ON
p.thread_id = t.thread_id
WHERE
t.forum_id = $this->forumID
Esta consulta solo mostrará (creo) los hilos que tienen alguna publicación en ella. También intenté usar la instrucción GROUP BY, pero hace que el error de MySQL ...
¿Cómo puedo solucionar esto?
----------- EDIT: He intentado añadir GROUP BY t.thread_id, sin embargo, como he dicho antes, los errores de MySQL:
Usted tiene un error en su sintaxis SQL; compruebe el manual que corresponde a su versión del servidor MySQL para el sintaxis derecho al uso cerca de 'DONDE t.forum_id = 2' en la línea 15
consulta completa:
SELECT t.*, u.nick, COUNT(p.post_id) AS postcount
FROM
threads t
LEFT JOIN
users u
ON
u.id = t.user_id
LEFT JOIN
posts p
ON
p.thread_id = t.thread_id
GROUP BY
t.thread_id
WHERE
t.forum_id = $this->forumID
EDIT 2:
Mi mal, puse la declaración GROUP BY en donde no estaba destinado. Ahora está resuelto.