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

Duda con INNER JOIN

Estas en el tema de Duda con INNER JOIN en el foro de Mysql en Foros del Web. Tengo la siguiente consulta que me funciona bien donde consigo los clientes que no tienen una reserva hecha SELECT * FROM TCliente tc LEFT JOIN ...
  #1 (permalink)  
Antiguo 24/02/2010, 07:09
 
Fecha de Ingreso: marzo-2009
Mensajes: 221
Antigüedad: 15 años, 1 mes
Puntos: 0
Duda con INNER JOIN

Tengo la siguiente consulta que me funciona bien donde consigo los clientes que no tienen una reserva hecha

SELECT * FROM TCliente tc LEFT JOIN TReserva tr ON tc.DNI=tr.dni_cliente WHERE tr.dni_cliente IS NULL ORDER BY `tc`.`nombre` ASC

Pero ahora lo que quiero es que ademas que no tengan reserva tampoco tengan una estancia actualmente, pero me estoy liando y no se si usar inner join o left join otra vez

Las 3 tablas que uso son TCliente, TReserva y TEstancia
TCliente tienes los campos: DNI, nombre,apellido...
TReserva tiene id_reserva_dni_cliente....
TEstancia tiene id_ficha,numDNI....
  #2 (permalink)  
Antiguo 24/02/2010, 08:02
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 INNER JOIN

Código MySQL:
Ver original
  1.     TCliente tc
  2.     LEFT JOIN TReserva tr ON tc.DNI = tr.dni_cliente
  3.     LEFT JOIN TEstancia te ON tc.DNI = te.numDNI
  4.     tr.dni_cliente IS NULL OR te.numDNI IS NULL
  5. ORDER BY `tc`.`nombre` ASC;
El LEFT JOIN debe hacerse contra la primera tabla, para que no dependa de TReserva.
En este caso el OR implica uno u otro. Si quieres que no se den las coincidencias, reemplaza OR por AND.
__________________
¿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 24/02/2010, 09:55
 
Fecha de Ingreso: marzo-2009
Mensajes: 221
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Duda con INNER JOIN

Ok gracias funciona perfectamente

Etiquetas: join
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 17:05.