sql >> データベース >  >> RDS >> Mysql

MYSQL自己結合はどのように機能しますか?

    これを理解しようとする方法は、event1とevent2というラベルの付いたピースに2つのリストを書き出すことです。次に、各リストにいくつかのレコードをリストします(リストは同じになります)。ここで、以下の説明のWHEREから開始します。

    2つのテーブルからデータを取得しています(同じテーブルを2回使用しましたが、当面は無視してください)

    FROM mm_eventlist_dates event1
    JOIN mm_eventlist_dates event2 
    

    残りを下から上に読むとおそらく役立つでしょう。

      WHERE event1.id=$id
    

    したがって、指定されたレコードIDを持つevent1からのレコードが必要です。おそらくそれはちょうど1つのレコードです。これで、そのイベントが終了した翌日がわかります。

     date_add(event1.enddate, INTERVAL 1 DAY)
    

    これで、event2のレコードがわかりました。その日付から開始する必要があります、

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

    これで2つのレコードが識別されました。どのフィールドが必要ですか?

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

    ああ、開始日がわかったフィールドからのフィールドだけです。



    1. SQL Server:クエリを使用して列のデフォルト値を確認する

    2. OracleSQLで2つの日付/時刻の差を計算します

    3. PgBouncerを使用したPostgreSQL接続プール

    4. データベースリンクを介してOracleでストアド関数(ユーザー定義型の配列を返す)を呼び出す