Ver Mensaje Individual
  #4 (permalink)  
Antiguo 21/06/2013, 19:50
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Resultados duplicados en MySQL

Cita:
Iniciado por wowmatu Ver Mensaje
me repite la misma noticia dependiendo cuantos tags contiene esa noticia...
Es que eso, en Bases de Datos, no se considera repetición.
Un registro se repite si y sólo si todos los valores de todos los campos son iguales, y en tu caso tienes un campo de tags que cambia de registro a registro.
DISTINCTROW, incluso, no tiene efecto precisamente por eso: diferencia registros de la tabla resultado diferentes, y en este caso siempre hay diferencias.
A lo máximo que puedes aspirar es que todos los tags se agrupen por cada post, para lo cual tienes que considerar dos cosas al menos:
1) Si existen o no posts sin tags (cosa que no has aclarado debidamente),
2) El tag_id se vuelve irrelvante en ese contexto, como tampoco necesitas traer de nuevo el post_id.
La cosa andaría por acá:
Código MySQL:
Ver original
  1.     bp.`post_id`,
  2.     bp.`post_approved`,
  3.     bp.`post_title`,
  4.     bp.`post_text`,
  5.     bp.`post_imagen`,
  6.     IFNULL(GROUP_CONCAT(pt.`tag_name`), '') tags
  7.     `phpbb_blog_posts` bp LEFT JOIN `phpbb_blog_tags` pt ON bp.post_id = pt.post_id
  8.     bp.`post_approved` = 1
  9. ORDER BY bp.`post_id` desc
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)