Obtention des valeurs de colonne correspondantes pour la valeur maximale
En SQL, vous pouvez rencontrer des situations dans lesquelles vous souhaitez récupérer les valeurs de colonne qui correspondent à la valeur maximale valeur d'une autre colonne, tout en s'assurant que les données récupérées sont précis.
Problème :
Lors de l'interrogation d'une table pour récupérer des colonnes spécifiques et regrouper les résultats en fonction d'une colonne, telle que la catégorie vidéo, vous pouvez observer que pour le valeur maximale de la colonne désignée (par exemple, video_id), il extrait la valeur correcte mais renvoie la première ligne du tableau pour toutes les autres colonnes (par exemple, video_url, video_date, video_title et short_description).
Solution :
Pour récupérer les colonnes correspondant à la valeur maximale de manière appropriée, envisagez l'approche suivante :
SELECT s.video_id ,s.video_category ,s.video_url ,s.video_date ,s.video_title ,s.short_description FROM videos s JOIN (SELECT MAX(video_id) AS id FROM videos GROUP BY video_category) max ON s.video_id = max.id
Cette requête exploite une opération JOIN pour faire correspondre l'ID vidéo (video_id) de la sous-requête qui calcule l'ID vidéo maximum (id) pour chaque catégorie vidéo avec l'ID vidéo de la table des vidéos. En utilisant la condition JOIN s.video_id = max.id, cela garantit que seule la ligne avec l'ID vidéo maximum pour chaque catégorie est renvoyée.
Cette approche fournit non seulement les valeurs correspondantes correctes pour l'ID vidéo maximum. mais fonctionne également beaucoup plus rapidement que la solution proposée dans le message 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!