Cláusula Union
Desliza para mostrar el menú
Has llamado la atención de un cliente que necesita consultas SQL. Antes de profundizar en los JOINs, aprenderás sobre la cláusula UNION, que es fundamental para combinar varias tablas.
UNION en SQL se utiliza para combinar los resultados de dos o más consultas SELECT en un solo conjunto de resultados. Permite fusionar filas de múltiples consultas en un único conjunto de datos.
A continuación, algunos aspectos importantes sobre el uso de UNION:
-
Cantidad y orden de columnas: todas las consultas combinadas con
UNIONdeben tener el mismo número de columnas en el mismo orden; -
Tipos de datos: las columnas en cada consulta deben tener tipos de datos compatibles;
-
Filas únicas: por defecto,
UNIONelimina las filas duplicadas. UtilizaUNION ALLsi deseas conservar los duplicados.
Para una mejor comprensión de cómo combinar correctamente tablas utilizando la cláusula UNION, se ha introducido una tabla adicional que contiene información sobre contractors.
Aquí no hay mucha información, solo first_name, last_name y email.
Se puede observar que esta tabla tiene similitudes con la tabla employees. Utilizando la cláusula UNION, es posible combinar estas dos tablas para, por ejemplo, ver una lista de todos los nombres y apellidos de employees y contractors involucrados en la empresa.
Para ello, se utiliza la cláusula UNION:
12345678(SELECT employee_id as id, first_name, last_name FROM employees) UNION (SELECT contractor_id as id, first_name, last_name FROM contractors) ORDER BY id
Hay dos consultas que devuelven tres columnas cada una con los mismos tipos de datos. El objetivo es ver el Id, first_name y last_name de todas las personas en la empresa. La columna Id también fue renombrada para que ambas consultas tengan los mismos nombres de columna.
UNION combina los resultados de estas consultas, eliminando duplicados (aunque aquí no hay ninguno).
Finalmente, los resultados se ordenan por Id usando ORDER BY.
Los resultados se ordenan por Id, que es una columna común en ambas tablas.
Después de usar UNION, se obtiene una "consulta grande única" que se puede manipular aún más con cláusulas como ORDER BY.
No se puede usar directamente WHERE o GROUP BY con tablas combinadas usando UNION. Para aplicar estas cláusulas, es necesario utilizar una subconsulta en la sección FROM. A continuación, se muestra un ejemplo de cómo hacerlo:
123456789SELECT id, first_name, last_name FROM ( SELECT employee_id AS id, first_name, last_name FROM employees UNION SELECT contractor_id AS id, first_name, last_name FROM contractors ) AS combined WHERE first_name = 'Jane'
¡Usar una subconsulta en la sección FROM nos da más flexibilidad! Puede parecer complicado al principio, pero dominar esto hará que escribir consultas complejas sea mucho más sencillo.
1. ¿Qué requisitos deben cumplir los conjuntos de resultados para combinarse usando UNION?
2. ¿Cómo trata la cláusula UNION las filas duplicadas por defecto?
¡Gracias por tus comentarios!
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla