ホームページ  >  記事  >  データベース  >  MySQL で別のイベントの後に特定の日数が経過したイベントを検索する方法

MySQL で別のイベントの後に特定の日数が経過したイベントを検索する方法

Barbara Streisand
Barbara Streisandオリジナル
2024-11-11 01:16:02640ブラウズ

How to Find Events Following Another Event by a Specific Number of Days in MySQL?

MySQL の自己結合について

SQL データベースで使用される技術である自己結合を使用すると、テーブル自体に対してクエリを実行できます。この場合、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;

1.データ抽出 (FROM)

FROM mm_eventlist_dates event1
JOIN mm_eventlist_dates event2 

この部分は、自己結合のために、event1 とevent2 として表される 2 つのテーブル mm_eventlist_dates からデータを抽出します。

2。結合条件 (ON)

ON event2.startdate = date_add(event1.enddate, INTERVAL 1 DAY)

この条件は 2 つのテーブル間の結合を定義します。イベント 2 の開始日がイベント 1 の終了日の 1 日後である必要があることを指定します。

3.フィルタリング (WHERE)

WHERE event1.id=$id

このフィルタは、指定された $id に一致する ID を持つイベントに結果を制限します。

4.フィールド選択 (SELECT)

SELECT event2.id, event2.startdate, event2.price

この部分では、event2 テーブルのどのフィールドを結果セットに含めるかを指定します (ID、開始日、価格)。

仕組み:

  1. クエリは、mm_eventlist_dates テーブルから 2 つのレコード セットを抽出することから始まります。
  2. 結合条件は、開始時刻が次のイベント 2 レコードをフィルタリングすることによって結果を絞り込みます。日付は、event1 レコードの終了日の 1 日後と一致します。
  3. フィルターは、ユーザー指定の $id を適用して、event1 レコードをさらに絞り込みます。
  4. 返された結果には、event2 からの必要なフィールドが含まれます。このテーブルは、event1 から 1 日後のイベントを表します。

以上がMySQL で別のイベントの後に特定の日数が経過したイベントを検索する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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