English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
L'opérateur UNION de PostgreSQL fusionne les résultats de deux ou plusieurs SELECT.
L'opérateur UNION est utilisé pour fusionner les résultats de deux ou plusieurs SELECT.
Veuillez noter que chaque SELECT à l'intérieur de UNION doit avoir un nombre de colonnes identique. Les colonnes doivent également avoir des types de données similaires. De plus, l'ordre des colonnes dans chaque SELECT doit être le même.
La syntaxe de base des UNION est la suivante :
SELECT column1 , column2 ] FROM table1 , table2 ] [WHERE condition] UNION SELECT column1 , column2 ] FROM table1 , table2 ] [WHERE condition]
Les conditions peuvent être définies comme vous le souhaitez.
Créer la table COMPANY (Télécharger le fichier SQL de la COMPANY ),contenu des données suivant :
w3codeboxdb# select * from COMPANY; id | name | age | address | salary ----+-------+-----+-----------+-------- 1 | Paul | 32 | California| 20000 2 | Allen | 25 | Texas | 15000 3 | Teddy | 23 | Norway | 20000 4 | Mark | 25 | Rich-Mond | 65000 5 | David | 27 | Texas | 85000 6 | Kim | 22 | South-Hall| 45000 7 | James | 24 | Houston | 10000 (7 rows)
Créer la table DEPARTMENT (Télécharger le fichier SQL DEPARTMENT ),contenu des données suivant :
w3codeboxdb=# SELECT * from DEPARTMENT; id | dept | emp_id ----+-------------+-------- 1 | IT Billing | 1 2 | Engineering | 2 3 | Finance | 7 4 | Engineering | 3 5 | Finance | 4 6 | Engineering | 5 7 | Finance | 6 (7 rows)
Maintenant, nous utilisons la clause UNION dans une requête SELECT pour joindre deux tables, comme suit :
SELECT EMP_ID, NAME, DEPT FROM COMPANY INNER JOIN DEPARTMENT ON COMPANY.ID = DEPARTMENT.EMP_ID UNION SELECT EMP_ID, NAME, DEPT FROM COMPANY LEFT OUTER JOIN DEPARTMENT ON COMPANY.ID = DEPARTMENT.EMP_ID;
Résultat obtenu comme suit :
emp_id | name | dept --------+-------+-------------- 5 | David | Engineering 6 | Kim | Finance 2 | Allen | Engineering 3 | Teddy | Engineering 4 | Mark | Finance 1 | Paul | IT Billing 7 | James | Finance (7 rows)
L'opérateur UNION ALL peut joindre deux requêtes SELECT avec des lignes répétées, généralement, l'opérateur UNION sélectionne des valeurs différentes. Si vous autorisez des valeurs répétées, utilisez UNION ALL.
La syntaxe de la clause UNION ALL est la suivante :
SELECT column1 , column2 ] FROM table1 , table2 ] [WHERE condition] UNION ALL SELECT column1 , column2 ] FROM table1 , table2 ] [WHERE condition]
Les conditions peuvent être définies comme vous le souhaitez.
Maintenant, laissons-nous combiner les deux tables mentionnées précédemment en utilisant une requête SELECT avec la clause UNION ALL :
SELECT EMP_ID, NAME, DEPT FROM COMPANY INNER JOIN DEPARTMENT ON COMPANY.ID = DEPARTMENT.EMP_ID UNION ALL SELECT EMP_ID, NAME, DEPT FROM COMPANY LEFT OUTER JOIN DEPARTMENT ON COMPANY.ID = DEPARTMENT.EMP_ID;
Résultat obtenu comme suit :
emp_id | name | dept --------+-------+-------------- 1 | Paul | IT Billing 2 | Allen | Engineering 7 | James | Finance 3 | Teddy | Engineering 4 | Mark | Finance 5 | David | Engineering 6 | Kim | Finance 1 | Paul | IT Billing 2 | Allen | Engineering 7 | James | Finance 3 | Teddy | Engineering 4 | Mark | Finance 5 | David | Engineering 6 | Kim | Finance (14 rows)