English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
El operador UNION de PostgreSQL combina los resultados de dos o más declaraciones SELECT.
El operador UNION se utiliza para combinar los conjuntos de resultados de dos o más declaraciones SELECT.
Por favor, tenga en cuenta que cada declaración SELECT interna de UNION debe tener el mismo número de columnas. Las columnas también deben tener tipos de datos similares. Además, el orden de las columnas en cada declaración SELECT debe ser el mismo.
La sintaxis básica de UNION es la siguiente:
SELECT column1 [, column2 ] FROM table1 [, table2 ] [WHERE condition] UNION SELECT column1 [, column2 ] FROM table1 [, table2 ] [WHERE condition]
La condición puede ser configurada con cualquier expresión según sus necesidades.
Crear tabla COMPANY (Descargar archivo SQL de COMPANY ),los datos son los siguientes:
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)
Crear la tabla DEPARTMENT (Descargar archivo SQL DEPARTMENT ),los datos son los siguientes:
w3codeboxdb=# SELECT * from DEPARTMENT; id | dept | emp_id ----+-------------+-------- 1 | Facturación IT | 1 2 | Ingeniería | 2 3 | Finanzas | 7 4 | Ingeniería | 3 5 | Finanzas | 4 6 | Ingeniería | 5 7 | Finanzas | 6 (7 rows)
Ahora, utilizamos la cláusula UNION en la cláusula SELECT para conectar las dos tablas, como se muestra a continuación:
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;
Se obtuvieron los siguientes resultados:
emp_id | name | dept --------+-------+-------------- 5 | David | Ingeniería 6 | Kim | Finanzas 2 | Allen | Ingeniería 3 | Teddy | Ingeniería 4 | Mark | Finanzas 1 | Paul | Facturación IT 7 | James | Finanzas (7 rows)
El operador UNION ALL puede conectar dos SELECT statements con filas repetidas, generalmente, el operador UNION selecciona valores diferentes. Si permite valores repetidos, utilice UNION ALL.
La sintaxis de la cláusula UNION ALL es la siguiente:
SELECT column1 [, column2 ] FROM table1 [, table2 ] [WHERE condition] UNION ALL SELECT column1 [, column2 ] FROM table1 [, table2 ] [WHERE condition]
La condición puede ser configurada con cualquier expresión según sus necesidades.
Ahora, combinemos las dos tablas mencionadas anteriormente utilizando una cláusula SELECT con la 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;
Se obtuvieron los siguientes resultados:
emp_id | name | dept --------+-------+-------------- 1 | Paul | Facturación IT 2 | Allen | Ingeniería 7 | James | Finanzas 3 | Teddy | Ingeniería 4 | Mark | Finanzas 5 | David | Ingeniería 6 | Kim | Finanzas 1 | Paul | Facturación IT 2 | Allen | Ingeniería 7 | James | Finanzas 3 | Teddy | Ingeniería 4 | Mark | Finanzas 5 | David | Ingeniería 6 | Kim | Finanzas (14 rows)