Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie funktioniert ein MYSQL Self-Join?

Ich würde versuchen, dies zu verstehen, indem ich zwei Listen auf Stück eins schreibe, die mit event1 und einer event2 gekennzeichnet sind. Listen Sie dann einige Datensätze in jeder Liste auf (die Listen werden identisch sein). Beginnen Sie nun bei dem WO in der Beschreibung unten.

Wir nehmen Daten aus zwei Tabellen (OK, dieselbe Tabelle wurde zweimal verwendet, aber versuchen Sie, das für den Moment zu ignorieren)

FROM mm_eventlist_dates event1
JOIN mm_eventlist_dates event2 

Es hilft wahrscheinlich, den Rest von unten nach oben zu lesen.

  WHERE event1.id=$id

Wir wollen also den Datensatz von event1 mit der angegebenen Datensatz-ID. Vermutlich ist das genau ein Rekord. Jetzt berechnen wir den Tag nach dem Ende dieses Ereignisses.

 date_add(event1.enddate, INTERVAL 1 DAY)

Das sagt uns jetzt, dass die Aufzeichnungen von event2 an diesem Datum beginnen müssen,

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

Wir haben jetzt zwei Datensätze identifiziert, welche Felder wollen wir?

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

Oh, nur die Felder von dem, dessen Startdatum wir herausgefunden haben.