English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
PostgreSQL UNION 操作符合并两个或多个 SELECT 语句的结果。
UNION 操作符用于合并两个或多个 SELECT 语句的结果集。
请注意,UNION 内部的每个 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每个 SELECT 语句中的列的顺序必须相同。
UNIONS 基础语法如下:
SELECT colonna1[, colonna2] FROM tabella1[, tabella2] [WHERE condizione] UNION SELECT colonna1[, colonna2] FROM tabella1[, tabella2] [WHERE condizione]
Le espressioni condizionali possono essere configurate con qualsiasi espressione secondo le tue esigenze.
创建 COMPANY 表(下载 COMPANY SQL 文件 ),数据内容如下:
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 righe)
创建 DEPARTMENT 表(下载 DEPARTMENT SQL 文件 ),数据内容如下:
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 righe)
Ora, uniamo le due tabelle utilizzando la clausola UNION nella SELECT statement, come segue:
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;
Ecco i risultati ottenuti:
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 righe)
L'operatore UNION ALL può connettere due SELECT statement con righe ripetute, di solito l'operatore UNION seleziona valori diversi. Se si desidera consentire valori ripetuti, utilizzare UNION ALL.
La sintassi della clausola UNION ALL è la seguente:
SELECT colonna1[, colonna2] FROM tabella1[, tabella2] [WHERE condizione] UNION ALL SELECT colonna1[, colonna2] FROM tabella1[, tabella2] [WHERE condizione]
Le espressioni condizionali possono essere configurate con qualsiasi espressione secondo le tue esigenze.
Ora, uniamo le due tabelle menzionate sopra utilizzando l'espressione SELECT e la clausola 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;
Ecco i risultati ottenuti:
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 righe)