簡體   English   中英

如何使用SQL LEFT JOIN查詢

[英]How to use sql LEFT JOIN query

我有兩個表,分別是bookingCurrentDay_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM