MySQL 自己結合クエリはイベントの終了日に関連するデータをどのように取得しますか?
Nov 10, 2024 pm 04:18 PMMySQL 自己結合クエリのメカニズムを理解する
自己結合クエリでは、同じテーブルの 2 つのインスタンスを結合して、関連する比較または取得を行います。データ。提示した SQL クエリの詳細を詳しく見てみましょう:
``
SELECTevent2.id,event2.startdate,event2.price
FROM mm_eventlist_datesevent1
JOIN mm_eventlist_datesevent2
ON イベント 2.開始日 = date_add(イベント 1.終了日, 間隔 1 DAY)
WHEREevent1.id=$id
``
パーツの詳細:
- FROM: 結合するテーブルを指定します。この場合、両方とも「mm_eventlist_dates」のインスタンスです。テーブル。混乱を避けるために、これらを「event1」および「event2」と呼びます。
- JOIN: 指定された条件に基づいて、行を「event1」から「event2」にリンクします。
-
ON: 結合条件を定義します。このクエリは次のとおりです:
- event2.startdate = date_add(event1.enddate, INTERVAL 1 DAY)
- この条件は、開始日が終了日の 1 日後である 'event2' の行と一致します。の行の日付'event1'.
- WHERE: 'event1.id' が指定された $id と一致する行のみを含むように結果をフィルターします。
仕組みのステップバイステップ:
- クエリは、指定された $id パラメーターに一致する 'event1' 内の行を識別することから始まります。
- 'event1' 内の一致する行ごとに、次の計算が行われます。 date_add() 関数を使用して終了日に 1 日を加えたもので、関連する行の開始日を表します。 'event2'.
- 次に、'event1' 行が、開始日がステップ 2 で計算された日付と一致する 'event2' の行に結合されます。
- 最後に、クエリは特定の列を選択します ( ID、開始日、価格) の一致した行から'event2'.
シナリオ例:
次のイベント データを含むテーブルを考えます:
ID | Start Date | End Date | Price |
---|---|---|---|
1 | 2023-03-01 | 2023-03-10 | 0 |
2 | 2023-03-15 | 2023-03-22 | 0 |
3 | 2023-04-01 | 2023-04-08 | 0 |
$id を 1 に設定してクエリを実行すると、イベント終了日の 1 日後に始まるイベント 2 のデータが取得されます。 1:
ID | Start Date | Price |
---|---|---|
2 | 2023-03-15 | 0 |
以上がMySQL 自己結合クエリはイベントの終了日に関連するデータをどのように取得しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

人気の記事

人気の記事

ホットな記事タグ

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Alter Tableステートメントを使用してMySQLのテーブルをどのように変更しますか?

Linuxでmysqlを実行します(phpmyAdminを使用してポッドマンコンテナを使用して/なし)

MACOSで複数のMySQLバージョンを実行する:ステップバイステップガイド

共通の脆弱性(SQLインジェクション、ブルートフォース攻撃)に対してMySQLを保護するにはどうすればよいですか?

MySQL接続用のSSL/TLS暗号化を構成するにはどうすればよいですか?
