Utiliser UNION pour combiner et trier les données de plusieurs tables MS Access
Dans les bases de données plus volumineuses, combiner les données de plusieurs tables est une tâche courante. L'opérateur UNION
fournit un moyen de fusionner des lignes de différentes tables en un seul ensemble de résultats. Cependant, parvenir au classement correct de ces données combinées nécessite une approche spécifique dans MS Access.
Une tentative simple comme celle-ci échouera :
<code class="language-sql">SELECT table1.field1 FROM table1 ORDER BY table1.field1 UNION SELECT table2.field1 FROM table2 ORDER BY table2.field1</code>
Le moteur de base de données MS Access Jet n'autorise pas les clauses ORDER BY
directement dans une requête UNION
.
La solution : requêtes et alias imbriqués
La solution consiste à imbriquer chaque instruction SELECT
individuelle dans sa propre sous-requête, puis à appliquer la clause ORDER BY
dans chaque sous-requête. Cela nécessite d'attribuer un alias à chaque sous-requête :
<code class="language-sql">SELECT * FROM ( SELECT table1.field1 FROM table1 ORDER BY table1.field1 ) AS DUMMY_ALIAS1 UNION ALL SELECT * FROM ( SELECT table2.field1 FROM table2 ORDER BY table2.field1 ) AS DUMMY_ALIAS2</code>
Cette méthode permet un classement correct des données combinées de table1
et table2
. Notez l'utilisation de UNION ALL
qui inclut toutes les lignes des deux requêtes, y compris les doublons, contrairement à UNION
qui supprime les doublons. Choisissez l'opérateur UNION
approprié en fonction de vos besoins. Cette technique permet effectivement de trier les données combinées à l'aide de l'opérateur UNION
dans MS Access.
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!