Maison > base de données > tutoriel mysql > le corps du texte

Comment commander des données avant de les regrouper dans MySQL ?

Linda Hamilton
Libérer: 2024-11-11 18:29:02
original
1002 Les gens l'ont consulté

How to Order Data Before Grouping in MySQL?

Ordre MySQL avant regroupement par

Lors de la récupération de données d'une base de données à l'aide de MySQL, il est souvent souhaitable de trier les résultats dans un ordre spécifique . Cependant, lorsque vous utilisez la clause GROUP BY pour regrouper des données, les résultats sont généralement classés après avoir été regroupés, ce qui peut ne pas produire le résultat souhaité.

Dans l'exemple fourni, la requête vise à récupérer le dernier message. pour chaque auteur et regroupez les résultats, mais la clause GROUP BY entraîne le classement des publications après le regroupement, ce qui donne des résultats incorrects.

Pour résoudre ce problème, une approche alternative consiste à utiliser une sous-requête pour déterminer la dernière publication date pour chaque auteur avant d’effectuer l’opération de groupe. Ceci peut être réalisé en utilisant la requête modifiée suivante :

SELECT
    wp_posts.*
FROM
    wp_posts
    JOIN (
        SELECT
            g.post_author,
            MAX(g.post_date) AS post_date
        FROM wp_posts AS g
        WHERE
            g.post_status = 'publish'
            AND g.post_type = 'post'
        GROUP BY g.post_author
    ) AS t
    ON wp_posts.post_author = t.post_author AND wp_posts.post_date = t.post_date
ORDER BY wp_posts.post_date DESC;
Copier après la connexion

Cette requête utilise d'abord une sous-requête pour calculer la dernière date de publication de chaque auteur et la stocke dans une table temporaire t. Il rejoint ensuite wp_posts avec t pour sélectionner les lignes qui correspondent aux dernières dates de publication et regroupe les résultats par auteur. Enfin, les résultats sont classés par ordre décroissant par date de publication pour obtenir les dernières publications de chaque auteur.

En utilisant cette approche, vous pouvez vous assurer que les publications sont classées avant d'être regroupées, fournissant ainsi les résultats souhaités. sans compromettre l'intégrité de l'opération de regroupement.

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