Maison > base de données > tutoriel mysql > Comment inclure des valeurs par défaut dans une requête IN pour les données de plage de dates manquantes ?

Comment inclure des valeurs par défaut dans une requête IN pour les données de plage de dates manquantes ?

Patricia Arquette
Libérer: 2025-01-17 06:26:09
original
510 Les gens l'ont consulté

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

Obtenir la valeur par défaut pour la valeur de requête IN

Supposons que vous ayez une requête qui utilise une requête IN pour récupérer les données des utilisateurs qui étaient en ligne au cours d'une plage de dates spécifique. Toutefois, vous souhaitez inclure une valeur par défaut dans la condition IN pour les ID utilisateur qui ne correspondent pas à la condition de plage de dates.

Question

La requête simplifiée ci-dessous utilise une jointure gauche pour faire correspondre l'utilisation en ligne aux identifiants des utilisateurs. Cependant, il renvoie uniquement les enregistrements correspondant aux critères de plage de dates.

<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>
Copier après la connexion

Solution

Pour inclure une valeur par défaut, placez la condition de plage de dates dans la clause FROM :

<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>
Copier après la connexion

Cela garantit que tous les ID utilisateur sont inclus dans la condition de récupération IN, qu'ils correspondent ou non à la condition de plage de dates. IFNULL est utilisé pour fournir une valeur par défaut de 0 aux utilisateurs sans données d'utilisation en ligne.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal