Heim >Datenbank >MySQL-Tutorial >Wie kann ich mithilfe einer Kalendertabelle Daten mit fehlenden Daten aus einer MySQL-Tabelle extrahieren?
Einführung:
Die vorliegende Aufgabe besteht darin, Daten aus MySQL abzurufen Tabelle, die datumsbezogene Werte enthält. Das Ziel besteht darin, alle Daten auszuwählen, die in einen bestimmten Datumsbereich fallen, einschließlich der Fälle, in denen für bestimmte Daten keine Daten vorhanden sind.
Abfrage:
Die bereitgestellte Abfrage SELECT data FROM tbl WHERE date BETWEEN date1 AND date2 wählt effektiv Daten innerhalb eines definierten Bereichs aus. Leere Daten innerhalb dieses Intervalls werden jedoch nicht berücksichtigt.
Lösung:
Um dieses Problem zu lösen, kann das Konzept der „Kalendertabellen“ eingesetzt werden. Diese Tabellen bieten eine strukturierte Möglichkeit zur Darstellung von Daten und ermöglichen eine einfache Bearbeitung und Einbeziehung fehlender Daten.
Kalendertabellen-Implementierung:
Der folgende MySQL-Code kann dazu verwendet werden Erstellen Sie eine Kalendertabelle:
CREATE TABLE ints (i INTEGER); INSERT INTO ints VALUES (0), (1), (2), (3), (4), (5), (6), (7), (8), (9);
Um eine Kalendertabelle zu erstellen, die das angegebene Datum umfasst Bereich:
SELECT '2009-06-25' + INTERVAL a.i * 10 + b.i DAY as date FROM ints a JOIN ints b ORDER BY a.i * 10 + b.i
Diese Abfrage generiert eine Liste von Daten im Bereich „25.06.2009“ und „01.07.2009“.
Kombiniert Kalender und Datentabelle:
Durch Linksverknüpfung der Kalendertabelle ('cal') mit der Originaltabelle ('tbl') auf der Im Feld „Datum“ können wir die gewünschten Ergebnisse erhalten:
SELECT cal.date, tbl.data FROM ( SELECT '2009-06-25' + INTERVAL a.i * 10 + b.i DAY as date FROM ints a JOIN ints b ORDER BY a.i * 10 + b.i ) cal LEFT JOIN tbl ON cal.date = tbl.date WHERE cal.date BETWEEN '2009-06-25' AND '2009-07-01';
Diese Abfrage gibt alle Daten innerhalb des angegebenen Bereichs zurück, einschließlich der Daten mit leeren Datenwerten (die als NULL angezeigt werden).
Das obige ist der detaillierte Inhalt vonWie kann ich mithilfe einer Kalendertabelle Daten mit fehlenden Daten aus einer MySQL-Tabelle extrahieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!