MySQL-Self-Joins verstehen
Selbst-Joins in MySQL zu verstehen kann entmutigend sein, insbesondere wenn Sie zum ersten Mal damit in Berührung kommen . Lassen Sie uns die folgende Abfrage analysieren, um ihre Mechanik zu verstehen:
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
Nach dem Login kopieren
Aufschlüsselung der Abfrage:
FROM und JOIN:
- Diese Abfrage kombiniert Daten aus zwei identischen Tabellen, mm_eventlist_dates, mithilfe von JOIN Schlüsselwort.
- Es werden zwei virtuelle Tabellen erstellt, event1 und event2, die dieselbe Tabelle zweimal darstellen.
WO:
- Diese Klausel wählt einen bestimmten Datensatz aus Ereignis1 basierend auf seiner ID aus. Nehmen wir an, dass dieser Datensatz Ereignis1 darstellt.
ON:
- Diese Klausel definiert die Beziehung zwischen den beiden virtuellen Tabellen.
- Es vergleicht das Startdatum von Ereignis2 mit dem Enddatum von Ereignis1, versetzt um einen Tag.
- Diese Bedingung stellt sicher, dass das Startdatum von Ereignis2 sollte genau einen Tag nach dem Ende von Ereignis1 liegen.
SELECT:
- Diese Klausel gibt die Felder an, die Sie aus der Abfrage abrufen möchten .
- In diesem Fall werden die ID, das Startdatum und der Preis ausgewählt Ereignis2.
So funktioniert die Abfrage:
- Die Abfrage identifiziert zunächst den Datensatz von Ereignis1, der mit der angegebenen ID übereinstimmt, die über die Variable $id übergeben wurde .
- Für den identifizierten Datensatz von Ereignis1 wird das Datum berechnet, das einen Tag nach seinem Ende liegt Datum.
- Das berechnete Datum wird dann mit dem Startdatum der Datensätze in Ereignis2 verglichen.
- Da Ereignis1 und Ereignis2 identische Tabellen sind, hat der einzige übereinstimmende Datensatz in Ereignis2 ein Startdatum einen Tag nach dem Ende von Ereignis 1.
- Dieser übereinstimmende Datensatz von Ereignis 2 stellt das folgende Ereignis (Ereignis 2) dar, das einen Tag danach auftritt Ereignis1.
- Abschließend ruft die Abfrage die ID, das Startdatum und den Preis von Ereignis2 ab und zeigt sie als Ergebnis an.
Das obige ist der detaillierte Inhalt vonWie helfen MySQL-Self-Joins bei der Suche nach Ereignissen, die einen Tag nach dem anderen auftreten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!