Maison > base de données > tutoriel mysql > Pourquoi ma requête SQL compte-t-elle toutes les lignes au lieu des lignes individuelles, et comment puis-je y remédier à l'aide de GROUP BY ?

Pourquoi ma requête SQL compte-t-elle toutes les lignes au lieu des lignes individuelles, et comment puis-je y remédier à l'aide de GROUP BY ?

Patricia Arquette
Libérer: 2025-01-18 05:36:10
original
844 Les gens l'ont consulté

Why is my SQL query counting all rows instead of individual rows, and how can I fix it using GROUP BY?

Dépannage des requêtes SQL : nombre de lignes incorrect et GROUP BY Solution

Votre requête SQL produit un nombre de lignes inexact, additionnant toutes les lignes au lieu de individuellement. La solution réside dans l'utilisation de la clause GROUP BY dans la sous-requête qui rejoint la table messages_aura. GROUP BY regroupe les lignes avec des valeurs identiques dans les colonnes spécifiées, fournissant les décomptes corrects.

Problème et solution :

L'original LEFT JOIN à messages_aura manquait d'une clause GROUP BY :

<code class="language-sql">LEFT JOIN
(
    SELECT `ID` AS `AuraID`, `Status` AS `AuraStatus`, COUNT(*) AS `Aura`
    FROM messages_aura
) aura ON (var.Poster = aura.AuraID AND var.ID = aura.AuraStatus)</code>
Copier après la connexion

Cela a entraîné un décompte Aura incorrect, car il totalisait toutes les lignes de messages_aura. L'ajout de GROUP BY corrige ceci :

<code class="language-sql">LEFT JOIN
(
    SELECT `ID` AS `AuraID`, `Status` AS `AuraStatus`, COUNT(*) AS `Aura`
    FROM messages_aura
    GROUP BY AuraID, AuraStatus
) aura ON (var.Poster = aura.AuraID AND var.ID = aura.AuraStatus)</code>
Copier après la connexion

Maintenant, chaque ligne de messages_aura est identifiée de manière unique par AuraID et AuraStatus, ce qui permet d'obtenir des décomptes Aura précis. La fonction COUNT(*) agrège correctement pour chaque combinaison unique de AuraID et AuraStatus.

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