SQLite Cláusulas UNION
de SQLiteUNIONLa cláusula/operador se usa para combinar los resultados de dos o más sentencias SELECT, sin devolver filas duplicadas.
Para usar UNION, el número de columnas seleccionadas en cada SELECT debe ser el mismo, con el mismo número de expresiones de columna, los mismos tipos de datos, y asegurarse de que tengan el mismo orden, pero no necesitan tener la misma longitud.
Sintaxis
UNIONLa sintaxis básica es la siguiente:
SELECT column1 [, column2 ] FROM table1 [, table2 ] [WHERE condition] UNION SELECT column1 [, column2 ] FROM table1 [, table2 ] [WHERE condition]
Aquí la condición dada puede ser cualquier expresión, según sea necesario.
Ejemplos
Supongamos que tenemos las siguientes dos tablas: (1) la tabla COMPANY se muestra a continuación:
sqlite> select * from COMPANY; ID NAME AGE ADDRESS SALARY ---------- -------------------- ---------- ---------- ---------- 1 Paul 32 California 20000.0 2 Allen 25 Texas 15000.0 3 Teddy 23 Norway 20000.0 4 Mark 25 Rich-Mond 65000.0 5 David 27 Texas 85000.0 6 Kim 22 South-Hall 45000.0 7 James 24 Houston 10000.0
(2) La otra tabla es DEPARTMENT, como se muestra a continuación:
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
Ahora, usemos la sentencia SELECT con la cláusula UNION para combinar las dos tablas, como se muestra a continuación:
sqlite> 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;
Esto producirá el siguiente resultado:
EMP_ID NAME DEPT ---------- -------------------- ---------- 1 Paul IT Billing 2 Allen Engineerin 3 Teddy Engineerin 4 Mark Finance 5 David Engineerin 6 Kim Finance 7 James Finance
Cláusula UNION ALL
El operador UNION ALL se usa para combinar los resultados de dos sentencias SELECT, incluyendo filas duplicadas.
Las reglas aplicables a UNION también se aplican al operador UNION ALL.
Sintaxis
UNION ALLLa sintaxis básica es la siguiente:
SELECT column1 [, column2 ] FROM table1 [, table2 ] [WHERE condition] UNION ALL SELECT column1 [, column2 ] FROM table1 [, table2 ] [WHERE condition]
Aquí la condición dada puede ser cualquier expresión, según sea necesario.
Ejemplos
Ahora, usemos la sentencia SELECT con la cláusula UNION ALL para combinar las dos tablas, como se muestra a continuación:
sqlite> 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;
Esto producirá el siguiente resultado:
EMP_ID NAME DEPT ---------- -------------------- ---------- 1 Paul IT Billing 2 Allen Engineerin 3 Teddy Engineerin 4 Mark Finance 5 David Engineerin 6 Kim Finance 7 James Finance 1 Paul IT Billing 2 Allen Engineerin 3 Teddy Engineerin 4 Mark Finance 5 David Engineerin 6 Kim Finance 7 James FinanceOtras extensiones