sql >> Base de Datos >  >> RDS >> SQLite

Unión SQLite

Resumen :en este tutorial, aprenderá a usar SQLite UNION operador para combinar conjuntos de resultados de dos o más consultas en un único conjunto de resultados.

Introducción a SQLite UNION operador

A veces, necesita combinar datos de varias tablas en un conjunto de resultados completo. Puede ser para tablas con datos similares dentro de la misma base de datos o tal vez necesite combinar datos similares de varias bases de datos.

Para combinar filas de dos o más consultas en un solo conjunto de resultados, use SQLite UNION operador. A continuación se ilustra la sintaxis básica de UNION operador:

query_1
UNION [ALL]
query_2
UNION [ALL]
query_3
...;Code language: SQL (Structured Query Language) (sql)

Ambos UNION y UNION ALL los operadores combinan filas de conjuntos de resultados en un solo conjunto de resultados. La UNION el operador elimina filas duplicadas, mientras que UNION ALL el operador no.

Porque la UNION ALL El operador no elimina las filas duplicadas, se ejecuta más rápido que UNION operador.

Las siguientes son reglas para unir datos:

  • El número de columnas en todas las consultas debe ser el mismo.
  • Las columnas correspondientes deben tener tipos de datos compatibles.
  • Los nombres de las columnas de la primera consulta determinan los nombres de las columnas del conjunto de resultados combinado.
  • El GROUP BY y HAVING las cláusulas se aplican a cada consulta individual, no al conjunto de resultados final.
  • El ORDER BY se aplica al conjunto de resultados combinado, no dentro del conjunto de resultados individual.

Tenga en cuenta que la diferencia entre UNION y JOIN por ejemplo, INNER JOIN o LEFT JOIN es que el JOIN cláusula combina columnas de varias tablas relacionadas, mientras que UNION combina filas de varias tablas similares.

Supongamos que tenemos dos tablas t1 y t2 con las siguientes estructuras:

CREATE TABLE t1(
    v1 INT
);
 
INSERT INTO t1(v1)
VALUES(1),(2),(3);
 
CREATE TABLE t2(
    v2 INT
);
INSERT INTO t2(v2)
VALUES(2),(3),(4);Code language: SQL (Structured Query Language) (sql)

La siguiente declaración combina los conjuntos de resultados de la tabla t1 y t2 usando UNION operador:

SELECT v1
  FROM t1
UNION
SELECT v2
  FROM t2;Code language: SQL (Structured Query Language) (sql)

Aquí está la salida:

La siguiente imagen ilustra la UNION funcionamiento de las tablas t1 y t2:

La siguiente declaración combina los conjuntos de resultados de la tabla t1 y t2 usando UNION ALL operador:

SELECT v1
  FROM t1
UNION ALL
SELECT v2
  FROM t2;Code language: SQL (Structured Query Language) (sql)

La siguiente imagen muestra la salida:

La siguiente imagen ilustra la UNION ALL funcionamiento de los conjuntos de resultados de las tablas t1 y t2:

SQLite UNION ejemplos

Tomemos algunos ejemplos del uso de UNION operador.

1) SQLite UNION ejemplo

Esta instrucción utiliza UNION operador para combinar nombres de empleados y clientes en una sola lista:

SELECT FirstName, LastName, 'Employee' AS Type
FROM employees
UNION
SELECT FirstName, LastName, 'Customer'
FROM customers;

Code language: SQL (Structured Query Language) (sql)

Aquí está la salida:

2) SQLite UNION con ORDER BY ejemplo

Este ejemplo usa UNION operador para combinar los nombres de los empleados y clientes en una sola lista. Además, utiliza el ORDER BY cláusula para ordenar la lista de nombres por nombre y apellido.

SELECT FirstName, LastName, 'Employee' AS Type
FROM employees
UNION
SELECT FirstName, LastName, 'Customer'
FROM customers
ORDER BY FirstName, LastName;Code language: SQL (Structured Query Language) (sql)

Aquí está la salida:

En este tutorial, ha aprendido a usar SQLite UNION operador para combinar filas de conjuntos de resultados en un único conjunto de resultados. También aprendiste las diferencias entre UNION y UNION ALL operadores.