MySQL 自連線如何協助尋找一天又一天發生的事件?

DDD
發布: 2024-11-12 19:56:02
原創
1002 人瀏覽過

How do MySQL Self-Joins Help Find Events That Occur One Day After Another?

了解MySQL 自聯接

了解MySQL 中的自聯接可能會令人畏懼,尤其是當您第一次遇到它們時。讓我們來剖析以下查詢以掌握其機制:

SELECT event2.id, event2.startdate, event2.price
FROM mm_eventlist_dates event1
JOIN mm_eventlist_dates event2 
ON event2.startdate = date_add(event1.enddate, INTERVAL 1 DAY)
WHERE event1.id = $id
登入後複製

分解查詢:

FROM 和JOIN:

此查詢使用JOIN 關鍵字組合來自兩個相同表mm_eventlist_dates 的資料。 它建立兩個虛擬表 event1 和 event2,代表同一個表格兩次。

  • WHERE:
  • 此子句根據 event1 的 ID 從 event1 中選擇特定記錄。假設這條記錄代表 Event1。

ON:

  • 此子句定義兩個虛擬表之間的關係。
  • 它將事件 2 的開始日期與事件 1 的結束日期進行比較,偏移一天。

此條件確保事件 2 的開始日期應恰好是事件 1 結束後的一天。

    SELECT:
  1. 此子句指定要從查詢擷取的欄位。
  2. 在本例中,它選擇 ID、開始日期,以及 event2 的價格。
  3. 查詢如何運作:
查詢首先辨識 event1 中與傳遞的指定 ID 相符的記錄$id 變數。 對於 event1 中標識的記錄,它計算結束日期一天後的日期。 然後將計算出的日期與中記錄的開始日期進行比較event2。 由於 event1 和 event2 是相同的表,因此 event2 中唯一匹配的記錄的開始日期將是 event1 結束後一天。 event2 中的此符合記錄代表以下事件(Event2) 在 Event1 一天後發生。 最後,查詢會擷取 Event2 的 ID、開始日期和價格,並將它們顯示為結果。

以上是MySQL 自連線如何協助尋找一天又一天發生的事件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板