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

Duda con LEFT JOIN y WHERE.

Estas en el tema de Duda con LEFT JOIN y WHERE. en el foro de Mysql en Foros del Web. tengo una consulta mas o menos asi SELECT campo,campo,campo FROM tabla1 LEFT JOIN tabla2 ON ... INNER JOIN tabla3 WHERE tabla2.id!=2 AND tabla3.id=1 pero no ...
  #1 (permalink)  
Antiguo 27/04/2011, 09:59
Avatar de RIVERMILLOS  
Fecha de Ingreso: marzo-2010
Mensajes: 1.336
Antigüedad: 14 años, 1 mes
Puntos: 15
Duda con LEFT JOIN y WHERE.

tengo una consulta mas o menos asi


SELECT campo,campo,campo
FROM tabla1
LEFT JOIN tabla2
ON ...
INNER JOIN tabla3
WHERE tabla2.id!=2 AND tabla3.id=1


pero no me funciona la condicion de la tabla2 no se si es porque la tengo con LEFT JOIN pero si le quito esa condicion me trae , pero necesito que no me traiga los que tengo el id de la tabla2 .que puede seR?

Y si tabla2.id es null tampoco me lo trae..


saludos

Última edición por RIVERMILLOS; 27/04/2011 a las 10:04
  #2 (permalink)  
Antiguo 27/04/2011, 10:04
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Duda con LEFT JOIN y WHERE.

Código MySQL:
Ver original
  1.     campo,
  2.     campo,
  3.     campo
  4.     tabla1 LEFT JOIN tabla2 ON ...
  5.     INNER JOIN tabla3 ON ...
  6.     tabla2.id IS NULL AND
  7.     tabla3.id=1
Si quieres aquellos que están en la tabla 1, pero no en la tabla 2, entonces debes buscar aquellos donde tabla2.id es NULL en el LEFT JOIN.
Lo que tienes que tener en cuenta es que la tabla Tabla3 debe, en ese caso, tener un INNER JOIN con la Tabla1, y no la Tabla2, ya que esta no está devolviendo ningún valor utilizable (todos son NULL).
¿Se entiende?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 27/04/2011, 10:34
Avatar de RIVERMILLOS  
Fecha de Ingreso: marzo-2010
Mensajes: 1.336
Antigüedad: 14 años, 1 mes
Puntos: 15
Respuesta: Duda con LEFT JOIN y WHERE.

Mas o menos , porque no solo necesito los que sean null sino cualquiera asi sea null o contenga el id los unicos que no debe traer son los del id 2 en el campo tabla2.id.


edito:

seria algo asi?

Código MySQL:
Ver original
  1.         campo,
  2.         campo,
  3.         campo
  4.     FROM
  5.         tabla1 LEFT JOIN tabla2 ON ...
  6.         INNER JOIN tabla3 ON ...
  7.     WHERE
  8.         (tabla2.id IS NULL  OR tabla2.id !=2 )AND
  9.         tabla3.id=1

saludos
  #4 (permalink)  
Antiguo 27/04/2011, 10:55
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Duda con LEFT JOIN y WHERE.

Debería funcionar...

¿Lo probaste ya?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 27/04/2011, 11:05
Avatar de RIVERMILLOS  
Fecha de Ingreso: marzo-2010
Mensajes: 1.336
Antigüedad: 14 años, 1 mes
Puntos: 15
Respuesta: Duda con LEFT JOIN y WHERE.

Lo acabe de probar y parace que funciona como deberia, voya seguir haciendole pruebas gracias por tu ayuda si pasa algo aviso


saludos

Etiquetas: join, left
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 04:02.