bueno, la verdad es que el tema no es sencillo. Lanzo una pregunta al aire:
¿por que usas una sentencia SQL tan complicada? ¿no podrias, por ejemplo, obtener la cantidad total de comentarios en una sentencia aparte, para no complicar el asunto tanto? A veces intentar hacerlo todo "de golpe" puede ser muy complicado, y lo que espeor, si nos despistamos, puede ser muy ineficiente.
No estoy seguro, pero no te valdria algo asi como:
Código:
SELECT usuarios.*, categorias.*, d1.*, d2.*, analisis.*
FROM usuarios, categorias, directorio d1, directorio d2, analisis
WHERE
d1.directorio_id = analisis.analisis_banda
AND
d2.directorio_id = analisis.analisis_sello
AND
categorias.categorias_id = analisis.analisis_categoria
AND
analisis.analisis_autor = usuarios.usuarios_id
AND
categorias.categorias_analisis = true
AND
analisis.analisis_publicado= true
AND
directorio.directorio_bandas = true
ORDER BY analisis.analisis_fecha DESC;
Como erás he quitado de la sentencia la obtencion del numero decomentarios para que no "enfollone" el asunto. Si te das cuenta la tabla directorio está repetida en el FROM, pero con un alias disitnto cada uno, y en la clausula WHERE tienes las condiciones de unión distintas para el SELLO y la BANDA:
Código:
d1.directorio_id = analisis.analisis_banda
AND
d2.directorio_id = analisis.analisis_sello
¿Van por aqui los tiros?
Un saludo
Zerjillo