MySQL - LEFT JOIN excluyendo datos

 
Vista:
sin imagen de perfil

LEFT JOIN excluyendo datos

Publicado por Juan (1 intervención) el 22/11/2021 17:42:21
Buen día, verán tengo esta consulta:

SELECT * FROM habitaciones LEFT JOIN reservaciones ON habitaciones.id = reservaciones.id_hab;

La tabla habitaciones tiene su ID y demás datos, la tabla de reservaciones tiene como datos el id, la fecha de inicio de la reservación y la de final, lo que quiero hacer es que ignore las habitaciones reservadas en determinadas fechas, y que muestre aquellas que aun no están en la tabla de reservaciones

¿Qué agrego en mi consulta para que esto sea posible?
Gracias de antemano.
screen
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

LEFT JOIN excluyendo datos

Publicado por Martha (80 intervenciones) el 28/11/2021 13:26:05
Buenos días Juan, he replicado tus tablas en MySQL y consigo lo que buscas con ésta consulta:

1
2
3
4
SELECT habitaciones.habitacion_id H_ID, habitaciones.tipo TIPO FROM habitaciones LEFT JOIN reservaciones ON habitaciones.habitacion_id = reservaciones.habitacion_id
WHERE reservaciones.habitacion_id IS NULL
OR
CURDATE() NOT BETWEEN reservaciones.fecha_ini AND reservaciones.fecha_fin;

Es decir, consigo las habitacioes que están disponibles hoy.

Si quieres saberlo para una fecha determinada solo tienes que cambiar CURDATE() por la fecha que quieras consultar: '2021-12-10' por ejemplo.

Espero que te sirva.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar