Ver Mensaje Individual
  #6 (permalink)  
Antiguo 14/02/2005, 04:11
Zerjillo
 
Fecha de Ingreso: febrero-2005
Mensajes: 396
Antigüedad: 19 años, 3 meses
Puntos: 1
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