Maison >base de données >tutoriel mysql >Comment trier les résultats de plusieurs requêtes SELECT combinées avec UNION ?
Tri des résultats des requêtes SELECT et UNION combinées
Combiner plusieurs requêtes SELECT
à l'aide de UNION
présente un défi commun : comment trier l'ensemble de données résultant. Explorons ce problème et sa solution.
Le défi
Lors de la récupération de données de diverses tables ou de l'utilisation de plusieurs instructions SELECT
jointes par UNION
, obtenir un ordre de tri de colonnes spécifique peut être délicat.
Explication détaillée
Considérez ce scénario :
<code class="language-sql">SELECT id, name, age FROM Student WHERE age < 20 UNION SELECT id, name, age FROM Student WHERE age >= 20;</code>
Cette requête sélectionne les données de deux groupes distincts au sein de la table Student
. Cependant, une simple clause ORDER BY name
placée dans l'une ou l'autre des instructions SELECT
ne triera pas correctement les résultats combinés.
La solution
L'approche correcte consiste à appliquer la clause ORDER BY
après la déclaration UNION
. La requête suivante montre la méthode appropriée :
<code class="language-sql">SELECT id, name, age FROM Student WHERE age < 20 UNION SELECT id, name, age FROM Student WHERE age >= 20 ORDER BY name;</code>
Cela garantit que la clause ORDER BY
opère sur l'ensemble de données complet produit par l'opération UNION
, garantissant la sortie triée souhaitée.
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!