Optimisation des requêtes SQL : récupération de lignes uniques avec des valeurs minimales
Ce guide démontre une technique SQL efficace pour extraire des lignes uniques contenant la valeur minimale d'une colonne spécifique. Ceci est souvent nécessaire lorsqu'il s'agit de données groupées et nécessite une combinaison de jointures et de filtrage.
Considérez l'exemple de tableau suivant :
<code class="language-sql">id game point 1 x 5 1 z 4 2 y 6 3 x 2 3 y 5 3 z 8</code>
L'objectif est de récupérer le id
et le point
pour chaque game
unique, en affichant la valeur point
minimale pour ce jeu. L'ensemble de résultats attendu est :
<code class="language-sql">id game point 1 z 4 2 y 6 3 x 2</code>
La requête SQL suivante permet d'atteindre cet objectif :
<code class="language-sql">SELECT tbl.* FROM TableName tbl INNER JOIN ( SELECT game, MIN(point) AS min_point FROM TableName GROUP BY game ) AS tbl1 ON tbl1.game = tbl.game AND tbl1.min_point = tbl.point;</code>
Voici une répartition de la requête :
TableName
(alias tbl
) avec les résultats de la sous-requête (alias tbl1
).point
pour chaque game
unique en utilisant MIN(point)
et regroupe les résultats par game
. Le résultat est un tableau avec game
et son minimum correspondant point
.game
et point
correspondent entre la table principale et la sous-requête sont incluses. Cela sélectionne précisément les lignes avec le minimum point
pour chaque game
.Cette requête optimisée évite toute complexité inutile et récupère directement les résultats souhaités. C'est une solution plus concise et souvent plus rapide que les approches alternatives.
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!