Query mysql ini dibutuhkan untuk menampilkan data kamar mana saja yang kosong dan dapat dibooking. Seperti yang kita ketahui kamar yang telah dibooking tidak boleh tampil berdasarkan tanggal dan waktu request booking. misal kamar dibooking pada tanggal 25 s/d 27. sedangkan kita memesan kamar tanggal 25 s/d 26. Tentu kamar tidak akan muncul / tidak akan tampil. Nah berikut adalah query sql untuk menampilkan data kamar yang kosong (data kamar yang tidak dibooking). Tutorial ini sangat cocok bagi anda yang sedang membuat sistem informasi pemesanan kamar /booking room. Semoga bermanfaat untuk anda. Silahkan lihat source codenya di bawah ini :
1. Pertama buat database bernama db_booking
2. Pada database tersebut. Buat tabel dengan query sebagai berikut :
CREATE TABLE bookings
(`booking_id` int, `room_id` int, `start_datetime` datetime, `end_datetime` datetime, `customer_id` int)
;
INSERT INTO bookings
(`booking_id`, `room_id`, `start_datetime`, `end_datetime`, `customer_id`)
VALUES
(001, 1, '2012-09-12T14:35', '2012-09-14T09:00', 23),
(002, 2, '2012-09-10T01:00', '2012-09-20T09:00', 20),
(003, 4, '2012-09-09T13:35', '2012-09-21T09:00', 43),
(004, 1, '2012-09-22T14:35', '2012-09-24T09:00', 9),
(005, 3, '2012-09-12T09:00', '2012-09-13T09:00', 53),
(006, 6, '2012-09-15T09:00', '2012-09-19T09:00', 27)
;
CREATE TABLE rooms
(`room_id` int);
INSERT INTO ROOMS VALUES (1),(2),(3),(4),(5),
(6),(7),(8),(9),(10);
3. Setelah tabel dibuat, berikut query untuk menampilkan databasenya :
SELECT r.room_id
FROM rooms r
WHERE r.room_id
NOT IN (
SELECT b.room_id FROM bookings b
WHERE NOT (b.end_datetime <
'2012-09-14T18:00'
OR
b.start_datetime >
'2012-09-21T09:00')
)
ORDER BY r.room_id;
Selamat mencoba, terimakasih..
Posting Komentar
Dilarang berkomentar dengan menggunakan kata-kata kotor, tidak senonoh, & mengandung unsur pornografi. Komentar yang tidak mematuhi etika akan diblok & dihapus. Terimakasih