Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/12/2011, 12:05
jomafer
 
Fecha de Ingreso: octubre-2011
Mensajes: 25
Antigüedad: 13 años
Puntos: 0
Consulta MySQL con LEFT OUTER JOIN

Saludos:

Tengo que realizar una consulta a partir de dos tablas:

1º mdl_forum_posts: Tabla que almacena TODOS LOS MENSAJES de un foro: Esta tabla no contiene ningún campo que indica si los mensajes han sido valorados o no.

2º mdl_forum_valoracion: Tabla que almacena los mensajes que han sido valorados de un foro.

Pues bien, quiero una consulta que muestre los mensajes Valorados con valoracion distinta de 0, y aquellos que no han sido valorados.

Para ello, me valgo de un left outer join, y he probado todos estos resultados, teniendo en cuenta que en la tabla valoracion sólo hay mensajes valorados con un 0 (pero no todos, solo 10 o 20 de 700 o así).

SELECT DISTINCT(id) FROM mdl_forum_posts LEFT OUTER JOIN mdl_forum_valoracion ON mdl_forum_posts.id=a.idPost AND a.calificacion<>0

Esa consulta me devuelve TODOS los mensajes del foro, ya sean valorados con 0 o no. No es lo que me interesa.

SELECT DISTINCT(id) FROM mdl_forum_posts LEFT OUTER JOIN (SELECT * FROM mdl_forum_valoracion WHERE calificacion<>0)a ON mdl_forum_posts.id=a.idPost

Me devuelve TODOS los mensajes, es decir lo mismo que en la primera.

SELECT DISTINCT(id) FROM mdl_forum_posts LEFT OUTER JOIN mdl_forum_valoracion a ON mdl_forum_posts.id=a.idPost WHERE a.calificacion<>0

Me devuelve 0 columnas, tampoco es lo que me interesa

¿Alguien me podría echar una mano?

Muchísimas gracias!