У меня есть две таблицы, подобные этой:
Room
-----------------
id
и
Reservation
-----------------
id
room_id
check_in
check_out
Я стремлюсь получить все номера, которые не забронированы, в течение указанного периода c check_in и check_out .
Пока мне удалось построить запрос следующим образом:
select * from room
where room.id not in (
select room2.id from room as room2
inner join reservation r on room2.id = r.room_id
where r.check_in > '2020-04-19' and r.check_out < '2020-04-25');
Но я считаю, что должен быть более оптимальный способ сделать это, используя левое соединение.
Как создать эквивалентный запрос, используя только объединения?