Heim >Datenbank >MySQL-Tutorial >Wie finde ich Ereignisse, die einem anderen Ereignis um eine bestimmte Anzahl von Tagen folgen, in MySQL?

Wie finde ich Ereignisse, die einem anderen Ereignis um eine bestimmte Anzahl von Tagen folgen, in MySQL?

Barbara Streisand
Barbara StreisandOriginal
2024-11-11 01:16:02699Durchsuche

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

Grundlegendes zu MySQL Self-Joins

Self-Joins, eine in SQL-Datenbanken verwendete Technik, ermöglichen es Ihnen, eine Tabelle gegen sich selbst abzufragen. In diesem Fall beschäftigen wir uns mit einem MySQL-Self-Join, um Ereignisse zu finden, deren Startdatum um eine bestimmte Anzahl von Tagen nach einem anderen Ereignis liegt.

Abfrageaufschlüsselung:

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. Datenextraktion (FROM)

FROM mm_eventlist_dates event1
JOIN mm_eventlist_dates event2 

Dieser Teil extrahiert Daten aus zwei Tabellen, mm_eventlist_dates, dargestellt als event1 und event2, zur Selbstverknüpfung.

2. Join-Bedingung (EIN)

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

Diese Bedingung definiert den Join zwischen den beiden Tabellen. Es gibt an, dass das Startdatum von Ereignis2 einen Tag nach dem Enddatum von Ereignis1 liegen muss.

3. Filtern (WHERE)

WHERE event1.id=$id

Dieser Filter beschränkt die Ergebnisse auf Ereignisse, deren ID mit der angegebenen $id übereinstimmt.

4. Feldauswahl (SELECT)

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

Dieser Teil gibt an, welche Felder aus der Tabelle „event2“ in den Ergebnissatz aufgenommen werden sollen: ID, Startdatum und Preis.

So funktioniert es:

  1. Die Abfrage beginnt mit dem Extrahieren von zwei Sätzen von Datensätzen aus der Tabelle mm_eventlist_dates.
  2. Die Join-Bedingung schränkt das Ergebnis ein, indem sie Ereignis2-Datensätze filtert, deren Start Die Daten stimmen einen Tag nach den Enddaten der Datensätze von Ereignis 1 überein.
  3. Der Filter wendet die vom Benutzer angegebene $id an, um die Datensätze von Ereignis 1 weiter zu verfeinern.
  4. Die zurückgegebenen Ergebnisse umfassen die gewünschten Felder aus Ereignis 2 Tabelle, die Ereignisse darstellt, die einen Tag nach Ereignis1 folgen.

Das obige ist der detaillierte Inhalt vonWie finde ich Ereignisse, die einem anderen Ereignis um eine bestimmte Anzahl von Tagen folgen, in MySQL?. 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