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
Freigeben: 2024-11-11 01:16:02
Original
676 Leute haben es durchsucht

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;
Nach dem Login kopieren

1. Datenextraktion (FROM)

FROM mm_eventlist_dates event1
JOIN mm_eventlist_dates event2 
Nach dem Login kopieren

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)
Nach dem Login kopieren

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
Nach dem Login kopieren

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
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage