SQLite
 sql >> Base de données >  >> RDS >> SQLite

Union SQLite

Résumé :dans ce tutoriel, vous apprendrez à utiliser SQLite UNION opérateur pour combiner les ensembles de résultats de deux requêtes ou plus en un seul ensemble de résultats.

Introduction à SQLite UNION opérateur

Parfois, vous devez combiner les données de plusieurs tables dans un ensemble de résultats complet. Cela peut être pour des tables avec des données similaires dans la même base de données ou peut-être avez-vous besoin de combiner des données similaires provenant de plusieurs bases de données.

Pour combiner les lignes de deux ou plusieurs requêtes en un seul jeu de résultats, vous utilisez SQLite UNION opérateur. Ce qui suit illustre la syntaxe de base de l'UNION opérateur :

query_1
UNION [ALL]
query_2
UNION [ALL]
query_3
...;Code language: SQL (Structured Query Language) (sql)

Les deux UNION et UNION ALL les opérateurs combinent les lignes des ensembles de résultats en un seul ensemble de résultats. L'UNION l'opérateur supprime les lignes en double, alors que l'opérateur UNION ALL l'opérateur ne le fait pas.

Parce que l'UNION ALL l'opérateur ne supprime pas les lignes en double, il s'exécute plus rapidement que l'UNION opérateur.

Les règles suivantes s'appliquent aux données d'union :

  • Le nombre de colonnes dans toutes les requêtes doit être le même.
  • Les colonnes correspondantes doivent avoir des types de données compatibles.
  • Les noms de colonne de la première requête déterminent les noms de colonne de l'ensemble de résultats combinés.
  • Le GROUP BY et HAVING les clauses sont appliquées à chaque requête individuelle, et non au jeu de résultats final.
  • Le ORDER BY La clause est appliquée à l'ensemble de résultats combiné, et non à l'ensemble de résultats individuel.

Notez que la différence entre UNION et JOIN par exemple, INNER JOIN ou LEFT JOIN est que le JOIN la clause combine des colonnes à partir de plusieurs tables liées, tandis que UNION combine lignes à partir de plusieurs tables similaires.

Supposons que nous ayons deux tables t1 et t2 avec les structures suivantes :

CREATE TABLE t1(
    v1 INT
);
 
INSERT INTO t1(v1)
VALUES(1),(2),(3);
 
CREATE TABLE t2(
    v2 INT
);
INSERT INTO t2(v2)
VALUES(2),(3),(4);Code language: SQL (Structured Query Language) (sql)

L'instruction suivante combine les ensembles de résultats des tables t1 et t2 à l'aide de l'UNION opérateur :

SELECT v1
  FROM t1
UNION
SELECT v2
  FROM t2;Code language: SQL (Structured Query Language) (sql)

Voici le résultat :

L'image suivante illustre l'UNION fonctionnement des tables t1 et t2 :

L'instruction suivante combine les ensembles de résultats des tables t1 et t2 à l'aide de UNION ALL opérateur :

SELECT v1
  FROM t1
UNION ALL
SELECT v2
  FROM t2;Code language: SQL (Structured Query Language) (sql)

L'image suivante montre la sortie :

L'image suivante illustre l'UNION ALL fonctionnement des jeux de résultats des tables t1 et t2 :

SQLite UNION exemples

Prenons quelques exemples d'utilisation de l'UNION opérateur.

1) SQLite UNION exemple

Cette instruction utilise le UNION opérateur de combiner les noms des employés et des clients dans une seule liste :

SELECT FirstName, LastName, 'Employee' AS Type
FROM employees
UNION
SELECT FirstName, LastName, 'Customer'
FROM customers;

Code language: SQL (Structured Query Language) (sql)

Voici le résultat :

2) SQLite UNION avec ORDER BY exemple

Cet exemple utilise le UNION opérateur de combiner les noms des employés et des clients dans une seule liste. De plus, il utilise le ORDER BY clause pour trier la liste des noms par prénom et nom.

SELECT FirstName, LastName, 'Employee' AS Type
FROM employees
UNION
SELECT FirstName, LastName, 'Customer'
FROM customers
ORDER BY FirstName, LastName;Code language: SQL (Structured Query Language) (sql)

Voici le résultat :

Dans ce tutoriel, vous avez appris à utiliser SQLite UNION opérateur pour combiner les lignes des ensembles de résultats en un seul ensemble de résultats. Vous avez également appris les différences entre UNION et UNION ALL opérateurs.