Recherche des valeurs maximales correspondantes dans SQL
Vous essayez de récupérer des valeurs spécifiques de votre table "vidéos", où la vidéo maximale de chaque catégorie L'ID doit correspondre à l'URL, la date, le titre et la description correspondants. Cependant, votre requête sélectionne actuellement la première ligne de ces valeurs au lieu de celles associées à l'ID vidéo maximal.
Pour résoudre ce problème et garantir que les valeurs des différentes colonnes correspondent à l'ID vidéo maximal pour chaque catégorie. , vous pouvez utiliser une requête SQL comme celle-ci :
SELECT * FROM videos v WHERE v.video_id IN ( SELECT DISTINCT MAX(video_id) FROM videos GROUP BY video_category ) ORDER BY v.video_category ASC
Cette requête mise à jour garantit que les valeurs de l'URL, de la date, du titre et de la description correspondent à l'ID vidéo maximum pour chaque catégorie. Il utilise une sous-requête pour identifier l'ID vidéo maximum pour chaque catégorie, puis filtre la requête principale pour récupérer les lignes correspondantes.
Vous pouvez également utiliser la requête suivante :
SELECT * 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 utilise une jointure pour filtrer le tableau « vidéos » en fonction de l'ID vidéo maximum pour chaque catégorie, garantissant que les lignes sélectionnées ont des valeurs correspondantes pour l'URL, la date, le titre et la description alignées sur le nombre maximum de vidéos. Pièce d'identité.
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!