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

[SOLUCIONADO] Obtener registros de una tabla que no esten en otra

Estas en el tema de Obtener registros de una tabla que no esten en otra en el foro de Bases de Datos General en Foros del Web. Tengo tres tablas, una de Hoteles (idHotel como PK y tiene ciudadID como FK) otra de Reservas donde tambien se guarda Reservas.ReservasHabitacionesidHotel como FK Quiero ...
  #1 (permalink)  
Antiguo 12/11/2016, 13:15
Avatar de Hyemin  
Fecha de Ingreso: agosto-2014
Mensajes: 147
Antigüedad: 9 años, 8 meses
Puntos: 0
Obtener registros de una tabla que no esten en otra

Tengo tres tablas, una de Hoteles (idHotel como PK y tiene ciudadID como FK) otra de Reservas donde tambien se guarda Reservas.ReservasHabitacionesidHotel como FK

Quiero obetener la lista de hoteles de una ciudad en particular que no tengan ninguna reserva registrada

Tengo ademas Pais como tabla con idPais y nombre, Ciudad con nombre y idCiudad, habitaciones con idReserva.

La tabla ReservasHabitaciones guarda el idHotel , en la tabla HOteles esta el idCiudad del hotel, necesito todos los hoteles de la ciudad X que no tengan ningun registro en la tabla ReservasHabitaciones

Algo que se me ocurria es esto:
Código SQL:
Ver original
  1. USE Hoteles;
  2. SELECT idHotel, HotelNombre FROM Hotel, ReservasHabitaciones
  3. WHERE Hotel.HotelCiudad = 6
  4. AND idHotel NOT IN  (ReservasHabitaciones.ReservaHabitacionIdHotel);

elijo todos los de la ciudad 6 que idHOtel np este en la tabla Reservas

Última edición por Hyemin; 12/11/2016 a las 13:30
  #2 (permalink)  
Antiguo 12/11/2016, 13:42
Avatar de Hyemin  
Fecha de Ingreso: agosto-2014
Mensajes: 147
Antigüedad: 9 años, 8 meses
Puntos: 0
Respuesta: Obtener registros de una tabla que no esten en otra

Lo solucione,
Código SQL:
Ver original
  1. USE Hoteles;
  2. SELECT idHotel, HotelNombre FROM Hotel, ReservasHabitaciones
  3. WHERE Hotel.HotelCiudad = 6
  4. AND idHotel NOT IN  (ReservasHabitaciones.ReservaHabitacionIdHotel);
  #3 (permalink)  
Antiguo 13/11/2016, 15:07
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Obtener registros de una tabla que no esten en otra

Recomendacion, usa joins explicitos y no uses "IN" en lugar de usa la clausula exists, te da mejor performanca
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Etiquetas: registros, tabla
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 16:29.