[英]How to use sql LEFT JOIN query
我有兩個表,分別是booking和CurrentDay_Booking 。
**booking**:
ID bookingdate TableID starttime endtime userID NumberOfPeople phoneNumber EmailID
1 2015-11-20 1 11:15:00 11:55:00 john 2 21029917 gmail.com
2 2015-11-20 1 11:15:00 11:40:00 riyas 2 21029917 gmail.com
3 2015-11-20 1 12:15:00 12:45:00 riyas 2 21029917 gmail.com
4 2015-11-21 2 11:20:00 11:30:00 riyas 2 21029917 gmail.com
**CurrentDay_Booking**:
ID bookingdate TableID starttime endtime userID NumberOfPeople phoneNumber EmailID
1 2015-11-20 1 11:15:00 11:55:00 john 2 21029917 gmail.com
我的問題是:需要將預訂表中的數據放到CurrentDay_Booking上,而不是CurrentDay_Booking ID上,而不是將當前日期,開始時間和結束時間等同於或等同於當前時間
我得到了當前時間和當前日期,使用不同的查詢
我不知道如何使用where子句和LEFT JOIN進行查詢
這是我的查詢:
SELECT
t.ID,
t.bookingdate,
t.TableID,
t.starttime,
t.endtime,
t.userID,
t.NumberOfPeople,
t.phoneNumber,
t.EmailID
FROM booking t
LEFT JOIN CurrentDay_Booking s
ON t.ID = s.ID
WHERE s.ID is null
and t.bookingdate='" . $cur_gmt_date . "'
and t.starttime <= '" . $cur_gmt_time24 . "'
and t.endtime => '" . $cur_gmt_time24 . "';
我認為我將條件置於錯誤的位置。
請任何一個幫助,在此先多謝。
從您所描述的內容來看,由於在您描述的場景中添加了表,因此創建表沒有任何意義。 結果表是相同的,所以為什么不直接從包含特定日期所有預訂的表中直接查詢。 不需要連接到另一個表,基於它是否已經存在
SELECT
t.ID,
t.bookingdate,
t.TableID,
t.starttime,
t.endtime,
t.userID,
t.NumberOfPeople,
t.phoneNumber,
t.EmailID
FROM
booking t
WHERE
t.bookingdate='" . $cur_gmt_date . "'
使用基於(bookingdate)的“ booking”表上的索引,它不必比較已有的內容。 然后,您不必擔心每天都要清理它,而只是開始新的一天。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.