ホームページ データベース mysql チュートリアル MySQL 自己結合クエリはイベントの終了日に関連するデータをどのように取得しますか?

MySQL 自己結合クエリはイベントの終了日に関連するデータをどのように取得しますか?

Nov 10, 2024 pm 04:18 PM

How does a MySQL self-join query retrieve data related to an event's end date?

MySQL 自己結合クエリのメカニズムを理解する

自己結合クエリでは、同じテーブルの 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 と一致する行のみを含むように結果をフィルターします。

仕組みのステップバイステップ:

  1. クエリは、指定された $id パラメーターに一致する 'event1' 内の行を識別することから始まります。
  2. 'event1' 内の一致する行ごとに、次の計算が行われます。 date_add() 関数を使用して終了日に 1 日を加えたもので、関連する行の開始日を表します。 'event2'.
  3. 次に、'event1' 行が、開始日がステップ 2 で計算された日付と一致する 'event2' の行に結合されます。
  4. 最後に、クエリは特定の列を選択します ( 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 サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

DockerでのMySQLメモリの使用を減らします DockerでのMySQLメモリの使用を減らします Mar 04, 2025 pm 03:52 PM

DockerでのMySQLメモリの使用を減らします

Alter Tableステートメントを使用してMySQLのテーブルをどのように変更しますか? Alter Tableステートメントを使用してMySQLのテーブルをどのように変更しますか? Mar 19, 2025 pm 03:51 PM

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

mysqlの問題を解決する方法共有ライブラリを開くことができません mysqlの問題を解決する方法共有ライブラリを開くことができません Mar 04, 2025 pm 04:01 PM

mysqlの問題を解決する方法共有ライブラリを開くことができません

sqliteとは何ですか?包括的な概要 sqliteとは何ですか?包括的な概要 Mar 04, 2025 pm 03:55 PM

sqliteとは何ですか?包括的な概要

Linuxでmysqlを実行します(phpmyAdminを使用してポッドマンコンテナを使用して/なし) Linuxでmysqlを実行します(phpmyAdminを使用してポッドマンコンテナを使用して/なし) Mar 04, 2025 pm 03:54 PM

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

MACOSで複数のMySQLバージョンを実行する:ステップバイステップガイド MACOSで複数のMySQLバージョンを実行する:ステップバイステップガイド Mar 04, 2025 pm 03:49 PM

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

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

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

MySQL接続用のSSL/TLS暗号化を構成するにはどうすればよいですか? MySQL接続用のSSL/TLS暗号化を構成するにはどうすればよいですか? Mar 18, 2025 pm 12:01 PM

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

See all articles