$bookStart = "2010-07-10";
$bookEnd = "2010-07-12";
SELECT * FROM booking WHERE ($bookStart BETWEEN time1 and time2) or ($bookEnd BETWEEN time1 and time2)
สอบถามเรื่องทำระบบจองห้องพัก เช็คการจองซ้ำ ในการเก็บวันที่ ที่อยู่ระหว่าง check in กับ check out ลงฐานข้อมูลครับ
ผมอยากจะโชว์ TB_1 โดยจะให้โชว์แต่ record ที่ยังไม่ได้จอง ใส่ในช่อง select ที่เป็น Dropdown น่ะครับ
select TB_1.* from TB_1 left join TB_1 on TB_1.bus_id = TB_2.booking_detail_busid where TB_2.booking_detail_busid is null
คือจากโจทย์ ผมไม่เห็นความจำเป็นต้องใช้วันที่ มากำหนดเลยครับ เพราะต้องการ แสดงรายการที่ยังไม่ได้ จอง
หมายความว่า เป็นรายการใน TB_1 ที่ไม่มีอยู่ใน 2
เมื่อทำการ join ด้วย left join รายการ field ใน TB_2 จะแสดงค่า null เมื่อไม่พบค่าที่ตรงกับ TB_1
ในทำนองเดียวกัน ถ้าต้องการหารายการที่มีคนจองแล้ว ก็เปลี่ยน where จาก is null เป็น is not null
และถ้าต้องการกำหนดช่วงเวลาค่อยใส่ช่วยเวลาครับ
where TB_2.booking_detail_busid is not null and booking_strdate >='start_date' and booking_enddate<='end_date'