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
Solution :
Pour obtenir efficacement le dernier pid pour chaque débarras, une combinaison de techniques est requise :
Identifier les horodatages maximum et les valeurs de débarras correspondantes :
SELECT rid, MAX(timestamp) AS maxt FROM theTable GROUP BY rid
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
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!