Heim > Datenbank > MySQL-Tutorial > Wie rufe ich Datensätze mit Standardwerten mithilfe von IN-Abfragen für fehlende Daten ab?

Wie rufe ich Datensätze mit Standardwerten mithilfe von IN-Abfragen für fehlende Daten ab?

Barbara Streisand
Freigeben: 2025-01-17 06:46:08
Original
850 Leute haben es durchsucht

How to Retrieve Records with Default Values Using IN Queries for Missing Data?

Verwenden von IN-Abfragen zum Abrufen von Datensätzen mit Standardwerten für fehlende Daten

Beim Abfragen der Online-Aktivität von Benutzern innerhalb eines bestimmten Datumsbereichs mithilfe einer IN-Klausel kann es zu Situationen kommen, in denen für einige Benutzer-IDs in der Bedingung IN entsprechende Einträge in der Tabelle OnlineUsage fehlen. Um dies zu handhaben und Standardwerte für fehlende Daten zurückzugeben, ist eine geänderte Abfragestruktur erforderlich.

Eine Standardabfrage gibt möglicherweise nur Ergebnisse für IDs mit übereinstimmenden Datensätzen zurück. Um alle IDs aus Ihrer IN-Liste einzubeziehen, auch diejenigen ohne übereinstimmende Online-Nutzungsdaten, strukturieren Sie die Abfrage neu, um ein LEFT JOIN (oder ein Äquivalent) zu nutzen. Der Schlüssel besteht darin, die Datumsbereichsbedingung von der WHERE-Klausel in die JOIN-Bedingung zu verschieben.

<code class="language-sql">SELECT
    users.Name,
    users.ID,
    IFNULL(SUM(OnlineUsage.Minutes), 0) AS MinutesOnline
FROM
    users
    LEFT JOIN OnlineUsage ON users.ID = OnlineUsage.ID
        AND OnlineUsage.Date >= '2016-01-01 00:00:00' AND OnlineUsage.Date < '2017-01-01 00:00:00'
WHERE users.ID IN (1, 2, 3, 4, 5) -- Your list of IDs here
GROUP BY users.ID;</code>
Nach dem Login kopieren

Diese überarbeitete Abfrage verwendet ein LEFT JOIN, um sicherzustellen, dass alle Benutzer einbezogen werden. Die Funktion IFNULL behandelt Fälle, in denen SUM(OnlineUsage.Minutes) NULL zurückgibt (für Benutzer ohne Online-Nutzungsdaten), indem sie ein 0 ersetzt. Die GROUP BY-Klausel ist entscheidend für die korrekte Aggregation von MinutesOnline für jeden Benutzer. Dieser Ansatz garantiert einen vollständigen Datensatz und bietet eine konsistente Darstellung aller Benutzer innerhalb des angegebenen Zeitrahmens, unabhängig davon, ob sie über Online-Nutzungsaufzeichnungen verfügen.

Das obige ist der detaillierte Inhalt vonWie rufe ich Datensätze mit Standardwerten mithilfe von IN-Abfragen für fehlende Daten ab?. 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