Heim >Datenbank >MySQL-Tutorial >Wie helfen MySQL-Self-Joins bei der Suche nach Ereignissen, die einen Tag nach dem anderen auftreten?

Wie helfen MySQL-Self-Joins bei der Suche nach Ereignissen, die einen Tag nach dem anderen auftreten?

DDD
DDDOriginal
2024-11-12 19:56:021084Durchsuche

How do MySQL Self-Joins Help Find Events That Occur One Day After Another?

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

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:

  1. Die Abfrage identifiziert zunächst den Datensatz von Ereignis1, der mit der angegebenen ID übereinstimmt, die über die Variable $id übergeben wurde .
  2. Für den identifizierten Datensatz von Ereignis1 wird das Datum berechnet, das einen Tag nach seinem Ende liegt Datum.
  3. Das berechnete Datum wird dann mit dem Startdatum der Datensätze in Ereignis2 verglichen.
  4. Da Ereignis1 und Ereignis2 identische Tabellen sind, hat der einzige übereinstimmende Datensatz in Ereignis2 ein Startdatum einen Tag nach dem Ende von Ereignis 1.
  5. Dieser übereinstimmende Datensatz von Ereignis 2 stellt das folgende Ereignis (Ereignis 2) dar, das einen Tag danach auftritt Ereignis1.
  6. 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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn