Heim > Datenbank > MySQL-Tutorial > Wie füge ich Standardwerte in eine IN-Abfrage für fehlende Datumsbereichsdaten ein?

Wie füge ich Standardwerte in eine IN-Abfrage für fehlende Datumsbereichsdaten ein?

Patricia Arquette
Freigeben: 2025-01-17 06:26:09
Original
510 Leute haben es durchsucht

How to Include Default Values in an IN Query for Missing Date Range Data?

Standardwert für IN-Abfragewert abrufen

Angenommen, Sie haben eine Abfrage, die eine IN-Abfrage verwendet, um Daten für Benutzer abzurufen, die innerhalb eines bestimmten Datumsbereichs online waren. Sie möchten jedoch einen Standardwert in die IN-Bedingung für Benutzer-IDs aufnehmen, die nicht mit der Datumsbereichsbedingung übereinstimmen.

Frage

Die vereinfachte Abfrage unten verwendet einen Left-Join, um die Online-Nutzung mit Benutzer-IDs abzugleichen. Es werden jedoch nur Datensätze zurückgegeben, die den Datumsbereichskriterien entsprechen.

<code class="language-sql">SELECT users.Name, users.ID, SUM(users.Minutes) AS MinutesOnline
FROM UserTable
LEFT JOIN OnlineUseage ON OnlineUseage.ID = UserTable.ID
WHERE OnlineUseage.Date >= '2016-01-01 00:00:00' AND OnlineUseage.Date < '2016-01-31 00:00:00';</code>
Nach dem Login kopieren

Lösung

Um einen Standardwert einzuschließen, platzieren Sie die Datumsbereichsbedingung in der FROM-Klausel:

<code class="language-sql">SELECT
    users.Name,
    users.ID,
    IFNULL(SUM(users.Minutes), 0) AS MinutesOnline
FROM
    users
LEFT JOIN OnlineUseage ON
        OnlineUseage.ID = users.ID and
        OnlineUseage.Date >= '2016-01-01 00:00:00' AND
        OnlineUseage.Date < '2016-01-31 00:00:00';</code>
Nach dem Login kopieren

Dadurch wird sichergestellt, dass alle Benutzer-IDs in der Abruf-IN-Bedingung enthalten sind, unabhängig davon, ob sie mit der Datumsbereichsbedingung übereinstimmen. IFNULL wird verwendet, um Benutzern ohne Online-Nutzungsdaten einen Standardwert von 0 bereitzustellen.

Das obige ist der detaillierte Inhalt vonWie füge ich Standardwerte in eine IN-Abfrage für fehlende Datumsbereichsdaten ein?. 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