Maison >base de données >tutoriel mysql >Comment puis-je trier les résultats de plusieurs requêtes SQL UNIONed ?
Tri des résultats des requêtes SQL combinées à l'aide de UNION
Lorsque vous utilisez UNION
en SQL pour combiner les résultats de plusieurs instructions SELECT
, vous devrez peut-être trier le résultat final. Comprendre comment fonctionne la commande avec UNION
est crucial.
Considérez cet exemple :
<code class="language-sql">SELECT id, name, age FROM Student WHERE age < 20 UNION SELECT id, name, age FROM Student WHERE age > 30;</code>
Le simple fait d'ajouter une clause ORDER BY
à chaque SELECT
déclaration individuelle n'ordonnera pas le résultat combiné final. Les clauses ORDER BY
de chaque sous-requête ne concernent que les résultats de cette sous-requête spécifique avant leur combinaison.
Pour trier correctement l'ensemble de résultats combiné, placez la clause ORDER BY
après l'instruction UNION
finale :
<code class="language-sql">SELECT id, name, age FROM Student WHERE age < 20 UNION SELECT id, name, age FROM Student WHERE age > 30 ORDER BY name;</code>
Dans cette requête révisée, la clause ORDER BY name
s'applique à l'ensemble de données produit par l'opération UNION
. Les résultats combinés sont traités comme un seul tableau, puis triés par ordre alphabétique selon la colonne name
. Cela garantit un classement correct, quelle que soit la sous-requête d'origine qui a fourni les données.
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!