„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > 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?

Veröffentlicht am 11.11.2024
Durchsuche:851

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 untersuchen wir einen 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, für die Selbstverknüpfung.

2. Join-Bedingung (ON)

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. Filterung (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 die Ergebnismenge aufgenommen werden sollen: ID , Startdatum und Preis.

So funktioniert es:

  1. Die Abfrage startet durch 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 Startdaten einen Tag nach den Enddaten von Ereignis1-Datensätzen liegen.
  3. Der Filter wendet die vom Benutzer angegebene $id an, um die Ereignis1-Datensätze weiter zu verfeinern.
  4. Die zurückgegebenen Ergebnisse umfassen die gewünschten Felder aus der Ereignis2-Tabelle, die Ereignisse darstellen, die auf Ereignis1 folgen einmal.
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3