Ver Mensaje Individual
  #2 (permalink)  
Antiguo 25/09/2012, 00:38
jurena
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 8 meses
Puntos: 300
Respuesta: Join Dos tablas un campo obligatorio otro no

Esta consulta con los filtros publicada = 1 y portada = 1 contradice el uso de LEFT JOIN. Si LEFT JOIN te selecciona todas las valores de los campos de la tabla noticias_tabla, el filtro por publicada = 1, deja sólo aquellos que tienen ese valor en ese campo en la tabla noticias_tabla; por otra parte, el añadido portada=1 hace que solo los registros que tienen en la tabla noticias_imagenes_tabla con un valor 1 el campo portada se seleccionen. Con ello ya eliminas el efecto de LEFT JOIN pues todos los registros de la tabla noticias_tabla que no tienen imagen en noticias_imagenes_tabla por fuerza tendrán NULL como valor de ese campo portada = 1. Por tanto te quedarán solo los registros de la tabla noticias_tabla y publicada 1 que además tengan una imagen relacionada con portada y no el valor 1. Todo lo demás no lo verás. Otra complicación, tal y como lo tienes, es el COUNT id_noticias agrupando por id_noticia y con HAVING > 0, algo que para mí no tiene sentido. El id_noticia es uno, si agrupas por él y siempre aparece uno y no más, cuando buscas > o te saldrán todos lo que te filtra la consulta. Acláranos mejor lo que quieres pues pareces querer tres cosas a la vez: 1) eso que te he dicho; 2) todas las noticias; 3) el total de no sé si una y otra.

Última edición por jurena; 25/09/2012 a las 00:54