Untuk mencari semua kamar yang tidak memiliki pemesanan dalam jangka waktu tertentu, pertimbangkan hal berikut:
SELECT roomID FROM room WHERE roomID NOT IN(
SELECT roomID FROM reservation WHERE startDate < @EndDate AND endDate > @StartDate
)
Apa yang terjadi di sana?
Dalam kueri dalam, saya mencari daftar reservasi untuk reservasi yang setidaknya sebagian dalam jangka waktu yang diperlukan, dan mendapatkan ID kamar mereka. Dan kemudian, dalam kueri luar, saya meminta dari tabel kamar semua ID kamar yang TIDAK terdaftar, yaitu, mereka tidak memiliki reservasi yang setidaknya sebagian dalam jangka waktu yang diperlukan.
@StartDate dan @EndDate harus diubah oleh Anda - Anda harus meletakkan variabel Anda di sana.