Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

¿Cómo mostrar resultados omitidos en una consulta?

Estas en el tema de ¿Cómo mostrar resultados omitidos en una consulta? en el foro de Mysql en Foros del Web. Tengo una base de datos con dos tablas: una para noticias y otra para los votos de la noticia. Pues quiero hacer una consulta para ...
  #1 (permalink)  
Antiguo 03/10/2009, 09:36
 
Fecha de Ingreso: noviembre-2006
Mensajes: 166
Antigüedad: 17 años, 5 meses
Puntos: 4
Pregunta ¿Cómo mostrar resultados omitidos en una consulta?

Tengo una base de datos con dos tablas: una para noticias y otra para los votos de la noticia.
Pues quiero hacer una consulta para mostrar las noticias junto con su suma de votos.
La sentencia SQL sería esta:

Cita:
SELECT noticias.*, SUM(votos_noticia.voto)
FROM noticias, votos_noticia
WHERE noticias.id_noticia=votos_noticia.num_noticia
GROUP BY noticias.id_noticia
En el resultado sólo me aparecen noticias que tienen votos. Si en la tabla de votos no hay ninguna puntuación para X noticia, en el resultado de la consulta esa noticia no me aparece.

¿Cómo puedo solucionar esto?
  #2 (permalink)  
Antiguo 03/10/2009, 12:34
 
Fecha de Ingreso: mayo-2009
Mensajes: 76
Antigüedad: 14 años, 10 meses
Puntos: 1
Respuesta: ¿Cómo mostrar resultados omitidos en una consulta?

amigo tienes que Usar un LEFT JOIN


SELECT noticias.*, SUM(votos_noticia.voto)
FROM noticias LEFT JOIN votos_noticia
WHERE noticias.id_noticia=votos_noticia.num_noticia
GROUP BY noticias.id_noticia

para que te aparezcan los de la tabla votos que tienen las noticias en NULL
  #3 (permalink)  
Antiguo 03/10/2009, 14:09
 
Fecha de Ingreso: noviembre-2006
Mensajes: 166
Antigüedad: 17 años, 5 meses
Puntos: 4
Respuesta: ¿Cómo mostrar resultados omitidos en una consulta?

Gracias richarparrao

Aunque recuerda que en los join el where es on

SELECT noticias.*, SUM(votos_noticia.voto)
FROM noticias
LEFT JOIN votos_noticia
ON noticias.id_noticia=votos_noticia.num_noticia
GROUP BY noticias.id_noticia
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:46.