Cláusula Union
Hemos llamado la atención de un cliente que necesita consultas SQL. Antes de adentrarnos en los JOINs
, aprendamos sobre la cláusula UNION
, que es fundamental para combinar varias tablas.
Aquí hay algunos aspectos importantes sobre el uso de UNION
:
-
Cantidad y orden de columnas: Todas las consultas combinadas con
UNION
deben 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,
UNION
elimina las filas duplicadas. UtilizaUNION ALL
si deseas conservar los duplicados.
Para comprender mejor cómo combinar tablas correctamente usando la cláusula UNION
, he introducido una tabla adicional que contiene información sobre los contractors
.
No hay mucha información aquí, solo los campos first_name
, last_name
y email
.
Puedes observar que esta tabla tiene similitudes con la tabla employees
. Utilizando la cláusula UNION
, podemos combinar estas dos tablas para, por ejemplo, ver una lista de todos los nombres y apellidos de empleados y contratistas involucrados en la empresa.
Para lograr esto, utilizaremos 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
Analicemos lo que está sucediendo:
Tenemos dos consultas que devuelven tres columnas cada una, con los mismos tipos de datos. Queremos ver el Id
, first_name
y last_name
de todas las personas en la empresa. También renombramos la columna Id
para que ambas consultas tengan los mismos nombres de columna.
Luego, utilizamos UNION
para combinar los resultados de estas consultas, eliminando duplicados (aunque en este caso no hay ninguno).
Finalmente, ordenamos los resultados por Id
usando ORDER BY
.
Note
Estamos ordenando por
Id
, que es una columna común en ambas tablas.
Después de usar UNION
, obtenemos una "consulta grande única" que podemos manipular aún más con cláusulas como ORDER BY
.
No podemos usar directamente WHERE
o GROUP BY
con tablas combinadas mediante UNION
. Para aplicar estas cláusulas, necesitamos utilizar una subconsulta en la sección FROM
. Aquí tienes 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'
¡Utilizar una subconsulta en la sección FROM
nos brinda mayor flexibilidad! Puede parecer complicado al principio, pero dominar esto facilitará mucho la escritura de consultas complejas.
1. ¿Qué columnas se requieren al utilizar la cláusula UNION
en SQL?
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
Awesome!
Completion rate improved to 4
Cláusula Union
Desliza para mostrar el menú
Hemos llamado la atención de un cliente que necesita consultas SQL. Antes de adentrarnos en los JOINs
, aprendamos sobre la cláusula UNION
, que es fundamental para combinar varias tablas.
Aquí hay algunos aspectos importantes sobre el uso de UNION
:
-
Cantidad y orden de columnas: Todas las consultas combinadas con
UNION
deben 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,
UNION
elimina las filas duplicadas. UtilizaUNION ALL
si deseas conservar los duplicados.
Para comprender mejor cómo combinar tablas correctamente usando la cláusula UNION
, he introducido una tabla adicional que contiene información sobre los contractors
.
No hay mucha información aquí, solo los campos first_name
, last_name
y email
.
Puedes observar que esta tabla tiene similitudes con la tabla employees
. Utilizando la cláusula UNION
, podemos combinar estas dos tablas para, por ejemplo, ver una lista de todos los nombres y apellidos de empleados y contratistas involucrados en la empresa.
Para lograr esto, utilizaremos 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
Analicemos lo que está sucediendo:
Tenemos dos consultas que devuelven tres columnas cada una, con los mismos tipos de datos. Queremos ver el Id
, first_name
y last_name
de todas las personas en la empresa. También renombramos la columna Id
para que ambas consultas tengan los mismos nombres de columna.
Luego, utilizamos UNION
para combinar los resultados de estas consultas, eliminando duplicados (aunque en este caso no hay ninguno).
Finalmente, ordenamos los resultados por Id
usando ORDER BY
.
Note
Estamos ordenando por
Id
, que es una columna común en ambas tablas.
Después de usar UNION
, obtenemos una "consulta grande única" que podemos manipular aún más con cláusulas como ORDER BY
.
No podemos usar directamente WHERE
o GROUP BY
con tablas combinadas mediante UNION
. Para aplicar estas cláusulas, necesitamos utilizar una subconsulta en la sección FROM
. Aquí tienes 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'
¡Utilizar una subconsulta en la sección FROM
nos brinda mayor flexibilidad! Puede parecer complicado al principio, pero dominar esto facilitará mucho la escritura de consultas complejas.
1. ¿Qué columnas se requieren al utilizar la cláusula UNION
en SQL?
2. ¿Cómo trata la cláusula UNION
las filas duplicadas por defecto?
¡Gracias por tus comentarios!