English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
A operação UNION do PostgreSQL combina os resultados de dois ou mais SELECT statements.
O operador UNION é usado para combinar os resultados de dois ou mais SELECT statements.
Por favor, note que cada语句SELECT dentro do UNION deve ter o mesmo número de colunas. As colunas também devem ter tipos de dados semelhantes. Além disso, a ordem das colunas em cada语句SELECT deve ser a mesma.
A sintaxe básica do UNION é a seguinte:
SELECT column1 [, column2 ] FROM table1 [, table2 ] [WHERE condition] UNION SELECT column1 [, column2 ] FROM table1 [, table2 ] [WHERE condition]
A expressão condicional aqui pode ser configurada como qualquer expressão conforme necessário.
criar tabela COMPANY (baixar arquivo SQL da COMPANHIA ),o conteúdo dos dados é o seguinte:
w3codeboxdb#selecionar * da COMPANHIA; id||nome||idade||endereço||salário ----+-------+-----+-----------+-------- 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 ||Sul-Hall| 45000 7 | James | 24 | Houston | 10000 (7 rows)
Criar a tabela DEPARTMENT (Baixar arquivo SQL DEPARTMENT ),o conteúdo dos dados é o seguinte:
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)
Agora, usamos a cláusula UNION na consulta SELECT para conectar as duas tabelas, conforme mostrado a seguir:
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;
Os resultados são os seguintes:
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)
O operador UNION ALL pode conectar duas consultas SELECT com linhas repetidas, geralmente, o operador UNION escolhe valores diferentes. Se você permitir valores repetidos, use UNION ALL.
A sintaxe básica da cláusula UNION ALL é a seguinte:
SELECT column1 [, column2 ] FROM table1 [, table2 ] [WHERE condition] UNION ALL SELECT column1 [, column2 ] FROM table1 [, table2 ] [WHERE condition]
A expressão condicional aqui pode ser configurada como qualquer expressão conforme necessário.
Agora, vamos combinar as duas tabelas mencionadas acima usando a cláusula SELECT e a cláusula 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;
Os resultados são os seguintes:
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)