Sélection et combinaison de colonnes de deux tables SQL

Lorsque vous travaillez avec des bases de données, il est courant de rencontrer des situations où vous devez récupérer des données de plusieurs tables. Un tel scénario se présente lorsque vous avez deux tables avec une colonne commune. Dans cet article de blog, nous allons explorer comment sélectionner une colonne spécifique, ColumnA, de deux tables différentes—Table1 et Table2—et la retourner sous forme d’un seul ensemble de résultats.

Le Problème

Supposons que vous avez deux tables dans votre base de données :

  • Table1 contient une colonne nommée ColumnA avec des valeurs :

    • a
    • b
    • c
  • Table2 contient également une colonne nommée ColumnA avec des valeurs :

    • d
    • e
    • f

Votre objectif est d’extraire toutes les instances de ColumnA des deux tables dans une seule colonne de l’ensemble de résultats. Cela signifie que vous souhaitez que la sortie affiche :

a
b
c
d
e
f

La Solution

Pour y parvenir, nous pouvons utiliser une requête SQL avec l’opérateur UNION. L’opérateur UNION nous permet de combiner les résultats de deux ou plusieurs instructions SELECT en un seul ensemble de résultats.

Exemple de Requête SQL

Voici la requête SQL qui accomplit cette tâche :

SELECT ColumnA FROM Table1 
UNION 
SELECT ColumnA FROM Table2 
ORDER BY 1;

Décomposition de la Requête

  1. Sélection des Colonnes :

    • Nous commençons par SELECT ColumnA FROM Table1 pour récupérer toutes les entrées de ColumnA dans Table1.
    • La partie suivante, SELECT ColumnA FROM Table2, fait de même pour Table2.
  2. Combinaison des Résultats :

    • L’opérateur UNION fusionne les ensembles de résultats des deux instructions SELECT.
    • Notez qu’en règle générale, UNION élimine les valeurs dupliquées, donc s’il y avait des chevauchements dans les valeurs de ColumnA entre les deux tables, elles n’apparaîtraient qu’une seule fois dans la sortie finale.
  3. Tri des Résultats :

    • La clause ORDER BY 1 trie la sortie finale par la première colonne, qui, dans ce cas, est ColumnA.

Quand Utiliser UNION ALL

Si vous êtes certain que les valeurs dans ColumnA de Table1 et Table2 ne se chevaucheront jamais, envisagez d’utiliser UNION ALL au lieu de UNION. Cette option évite la surcharge de vérification des doublons et peut améliorer les performances :

SELECT ColumnA FROM Table1 
UNION ALL 
SELECT ColumnA FROM Table2 
ORDER BY 1;

Résumé

En résumé, combiner des données de plusieurs tables en SQL peut être géré efficacement en utilisant l’opérateur UNION. Cette pratique non seulement simplifie la récupération des données, mais rend également vos requêtes de base de données plus robustes et flexibles.

Vous pouvez maintenant facilement extraire et fusionner des colonnes de différentes tables, renforçant ainsi votre capacité à gérer et analyser vos données efficacement !