Maison > base de données > tutoriel mysql > Comment récupérer efficacement le dernier « pid » pour chaque « rid » unique à l'aide de « MAX() » et « GROUP BY » de MySQL ?

Comment récupérer efficacement le dernier « pid » pour chaque « rid » unique à l'aide de « MAX() » et « GROUP BY » de MySQL ?

Mary-Kate Olsen
Libérer: 2025-01-01 00:16:09
original
282 Les gens l'ont consulté

How to Efficiently Retrieve the Latest `pid` for Each Unique `rid` Using MySQL's `MAX()` and `GROUP BY`?

Optimisation des requêtes MySQL : MAX() et GROUP BY

Problème :

Étant donné une table avec des colonnes pid, horodatage , cost et rid, la tâche est de récupérer le pid de la dernière ligne pour chaque débarras unique, en considérant que le pid est auto-incrémenté clé primaire.

Requête originale :

La requête suivante récupère l'horodatage maximum et les valeurs rid correspondantes, mais elle ne renvoie pas correctement le dernier pid :

SELECT MAX(timestamp), rid, pid FROM theTable GROUP BY rid
Copier après la connexion

Solution :

Pour obtenir efficacement le dernier pid pour chaque débarras, une combinaison de techniques est requise :

  1. Identifier les horodatages maximum et les valeurs de débarras correspondantes :

    SELECT rid, MAX(timestamp) AS maxt FROM theTable GROUP BY rid
    Copier après la connexion
  2. Rejoignez la table d'origine par rapport à l'horodatage maximum résultats :

    SELECT
        t.pid,
        t.cost,
        t.timestamp,
        t.rid
    FROM
        theTable AS t
    JOIN
        (SELECT rid, MAX(timestamp) AS maxt FROM theTable GROUP BY rid) AS maxt
    ON
        t.rid = maxt.rid AND t.timestamp = maxt.maxt
    Copier après la connexion

Cette requête révisée récupère efficacement le pid, le coût, l'horodatage et la dernière ligne pour chaque débarras unique dans la table d'origine.

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