Volver a la lista de artículos Artículos
Lectura de 9 minutos

Cómo Utilizar Alias con JOINs en SQL

Los alias en SQL son nombres personalizados que se pueden dar a las columnas y tablas que se incluyen en las consultas. Los alias son muy útiles, ya que pueden mejorar en gran medida la legibilidad y la capacidad de mantenimiento de su consulta. Vamos a echar un vistazo a la utilización de los alias de SQL con JOIN y a las razones por las que puede ser necesario hacerlo.

Hay varios tipos de alias que puede usar en SQL:

  1. Alias para tablas.
  2. Alias para las columnas de la tabla.
  3. Alias para subconsultas.

Aunque hay diferentes maneras de usar alias en tus consultas, la sintaxis es similar para todos estos métodos. Veamos la sintaxis de los alias.

Sintaxis de los alias SQL

La sintaxis que se muestra a continuación cubre tanto los alias de columna como los de tabla:

SELECT
  t1.column_name (AS) new_column_name,
  t2.column_name (AS) other_new_column_name,
  ...
FROM table1 (AS) t1
JOIN table2 (AS) t2
  ON t1.column_name = t2.column_name
…

Si se siente abrumado por esta sintaxis, considere la posibilidad de familiarizarse con los fundamentos de las consultas SQL inscribiéndose en este curso de SQL para principiantes . Le proporcionará una base sólida y le permitirá leer, escribir y entender las consultas SQL con facilidad.

Alias de columnas SQL

Primero, veamos los alias de columna:

 t1.column_name (AS) new_column_name,
 t2.column_name (AS) other_new_column_name

La palabra clave AS es opcional. Puede incluirla si lo desea, pero la consulta se comportará exactamente igual a pesar de ello.

El alias se define directamente después del nombre de la columna (o de la palabra clave AS ). En este caso, nuestros alias son new_column_name y other_new_column_name.

Si quiere incluir espacios en su nuevo nombre de columna, enciérrelo entre comillas. Podríamos actualizar este ejemplo a:

SELECT t1.column_name (AS) 'new column name'

Excluir las comillas simples aquí causaría un error.

Bien, esto cubre los alias de SQL para los nombres de columna. Veamos los alias de tabla.

Alias de tabla SQL

Definimos los alias de tabla así:

FROM table1 (AS) t1
JOIN table2 (AS) t2

Como antes, la inclusión de la palabra clave AS es completamente opcional. Declaramos que el alias de table1 sea t1. Del mismo modo, el alias para table2 es t2.

Cuando se renombran las tablas de la base de datos, se deben utilizar los alias de las tablas en lacondición ON, en la SELECT al seleccionar las columnas (si es necesario especificar la tabla para la columna), y en otras partes de la consulta.

Puedes ver que seguimos esta regla al incluir t1 y t2 en nuestra cláusula SELECT:

SELECT
  t1.column_name (AS) new_column_name,
  t2.column_name (AS) other_new_column_name,
  ... 

Alias SQL para subconsultas

Una subconsulta SQL es una consulta dentro de otra consulta. Veamos la sintaxis de cómo usar alias en una subconsulta.

SELECT column_1, 
       column_2 = (SELECT COUNT(t2.id)
                         FROM table_2 t2
                        WHERE t2.id = t1.id)
  FROM table_1 t1

La subconsulta es la parte de la consulta en negrita. Puedes ver cómo los alias nos ayudan a acceder a la tabla correcta en cada parte de la consulta.

Con esto concluimos nuestra mirada a la sintaxis de los alias de SQL. Veamos algunos ejemplos prácticos del uso de alias con JOIN.

Ejemplos de Uso de Alias SQL con JOIN

En esta sección, veremos algunos casos comunes de uso de alias y explicaremos como implementar cada uno de ellos. Tipos de JOIN en SQL es un tema complicado - está incluido en este artículo sobre Temas SQL que Requieren Práctica. Mientras más exposición a ejemplos prácticos tengas, mejor te irá.

Usando un Alias con Nombres de Columnas No Únicos

Cuando se trata de múltiples tablas, es común tener el mismo nombre de columna en ambas tablas. Esto ocurre frecuentemente con la columna id. Aquí hay un ejemplo que lo demuestra:

SELECT employee.id, customer.id, employee_name, employee_department 
FROM employees 
INNER JOIN customer 
ON employee.id = customer.employee_id 

Los datos resultantes se muestran como:

ididemployee_nameemployee_department
1214John JacobsHuman Resources

Este resultado confundirá a los interesados, ya que no tienen forma de saber qué id pertenece a qué tabla. Introducir un alias de columna para cada columna de id puede ayudar:

SELECT employee.id employee_id, customer.id customer_id, employee_name, employee_department 
FROM employees 
INNER JOIN customer 
ON employee.id = customer.employee_id 

Ahora obtenemos un resultado mucho más comprensible:

employee_idcustomer_idemployee_nameemployee_department
1214John JacobsHuman Resources

Mejorar la legibilidad de las consultas

Un alias puede simplificar y mejorar la legibilidad de la consulta. Por ejemplo, imagine que hay una columna llamada cn_index que almacena los nombres de los clientes. No es inmediatamente obvio lo que representa esta columna; necesitaría la documentación del modelo de datos o que alguien se lo explicara para descifrar su significado. Este problema puede reducirse utilizando un alias en cualquier consulta que incluya esta columna. Esto podría ser así:

SELECT cn_index AS customer_id 
FROM customers

Lo mismo ocurre con cualquier tabla mal nombrada que encuentre en su base de datos.

Mejora la capacidad de mantenimiento de las consultas

Los alias también ayudan a mantener las consultas. Imagine que tiene una consulta como la siguiente:

SELECT customer.id, customer.name, customer.age, client.id 
FROM customer 
JOIN client 
ON customer.id = client.id

Ahora imaginemos que hay un cambio en nuestra tabla customer como el cambio de nombre a customers_europe. Tendría que hacer el cambio en todos los lugares donde se hace referencia a esta tabla:

SELECT customers_europe.id, customers_europe.name, customers_europe.age, client.id
FROM customers_europe
JOIN client 
ON customers_europe.id = client.id

Esto puede no parecer un gran paso, pero se trata de una consulta corta y sencilla. Imagine que tiene que actualizar varios procedimientos almacenados y funciones debido a este cambio.

Veamos cómo los alias ayudan con este problema. Nuestra primera consulta, cuando se actualiza para utilizar un alias, podría tener este aspecto:

SELECT c.id, c.name, c.age, client.id
FROM customer c
JOIN client
ON c.id = client.id

Ahora, cuando vayamos a actualizar nuestra tabla, sólo tendremos que hacer el cambio en un lugar:

SELECT c.id, c.name, c.age, client.id
FROM customers_europe c
JOIN client
ON c.id = client.id

Esto supone un gran ahorro de tiempo si tienes que actualizar un gran número de consultas, funciones y procedimientos almacenados existentes.

Autouniones

Una autounión permite unir una tabla a sí misma. Es útil para consultar datos jerárquicos o comparar filas dentro de la misma tabla. Al auto-unir una tabla, puede utilizar un LEFT JOIN o un INNER JOIN. Al realizar una auto-unión, es importante utilizar un alias SQL lógico para cada instancia de la tabla.

Veamos cómo podemos escribir una consulta que una una tabla a sí misma. Para nuestro ejemplo, utilizaremos la siguiente tabla, tbl_employee. Muestra todos los empleados de la empresa, el ID de su departamento y el ID de su gerente:

idemployee_namedepartment_idmanager_id
1Montgomery Burns4NULL
2Waylon Smithers11
3Homer Simpson21
4Carl Carlson51
5Lenny Leonard31
6Frank Grimes23

Digamos que queremos un conjunto de resultados que sólo muestre a un empleado y a su gerente. ¿Cómo podemos conseguirlo? Utilizando alias en combinación con una autoconexión. Observe el siguiente fragmento de código:

SELECT e.employee_name AS 'Employee',
m.employee_name AS 'Manager'
FROM tbl_employee e
LEFT JOIN tbl_employee m
ON m.id = e.manager_id

Observe que hemos utilizado LEFT JOIN como auto-unión. Al unir tablas, tenga cuidado con el error de columna ambigua, que puede producirse fácilmente si no tiene cuidado. Para evitar este error, debe especificar explícitamente el alias de la tabla en el nombre de la columna (e.employee_name y m.employee_name).

Al ejecutar la consulta anterior se obtiene el siguiente conjunto de resultados:

EmployeeManager
Montgomery BurnsNULL
Waylon SmithersMontgomery Burns
Homer SimpsonMontgomery Burns
Carl CarlsonMontgomery Burns
Lenny LeonardMontgomery Burns
Frank GrimesHomer Simpson

¡Ahí está nuestro resultado deseado! Puede ver claramente a cada empleado y a su jefe. La mayoría de los empleados dependen del Sr. Burns. Sin embargo, puede ver que el gerente de Frank Grimes es Homer Simpson. Fíjese en el valor NULL de la columna Gerente de Montgomery Burns. Esto se debe a que Montgomery Burns no tiene gerente; él es el jefe.

Modifiquemos ligeramente la consulta y utilicemos esta vez un INNER JOIN para nuestra autoconexión:

SELECT e.employee_name AS 'Employee',
m.employee_name AS 'Manager'
FROM tbl_employee e
INNER JOIN tbl_employee m
ON m.id = e.manager_id
EmployeeManager
Waylon SmithersMontgomery Burns
Homer SimpsonMontgomery Burns
Carl CarlsonMontgomery Burns
Lenny LeonardMontgomery Burns
Frank GrimesHomer Simpson

La única diferencia importante es la ausencia de Montgomery Burns en la columna Employee. Esto se debe a que el valor de manager_id para él era NULL y INNER JOIN sólo devuelve columnas coincidentes; los valores NULL no se incluyen.

Ahora puede realizar autouniones, que son aplicables a muchos casos de uso diferentes. Si quieres ver más ejemplos, consulta esta excelente guía ilustrada sobre las autouniones. La auto-unión también aparece en esta útil hoja de trucos de SQL JOIN. Marque la página o descárguela y siempre tendrá una guía rápida de los diferentes tipos de JOIN.

Crear resultados significativos

Cuando utilice funciones de agregación, por defecto el resultado se mostrará en una columna sin nombre. Un alias es una forma perfecta de añadir significado a los resultados de sus funciones agregadas.

Veamos un breve ejemplo para ver cómo funciona. Imaginemos que tenemos una tabla llamada payments que contiene algunos datos de pago:

payment_amountpayment_date
1200.992021-01-18
189.232021-02-15
3002.432021-02-25
33.432021-03-03

Esta es una consulta:

SELECT SUM(payment_amount)
FROM payments

Al ejecutar esta consulta se obtiene el siguiente resultado:

(No column name)
4,426.08

No tenemos ni idea de lo que representa este resultado porque no tiene nombre de columna. Actualicemos nuestra consulta con un alias para que los resultados sean más significativos.

SELECT SUM(payment_amount) AS 'Sum of payments'
FROM payments

Ejecute la consulta para ver los resultados de nuestra nueva y mejorada consulta:

Sum of payments
4,426.08

Estos son sólo algunos de los usos de los alias de SQL. Para ver más ejemplos, consulte esta entrada del blog sobre cómo utilizar los alias en SQL.

Explicación del Alias JOIN de SQL

Ya hemos hablado de cómo un alias puede ayudar a la legibilidad y a la capacidad de mantenimiento de su consulta SQL, por no mencionar el papel integral que desempeña en las autouniones. Hemos visto muchos casos de uso y ejemplos diferentes. Para obtener una formación más completa sobre el tema, consulte el curso LearnSQL.es Tipos de JOIN en SQL .

Si desea aprender algo más que JOINs - tal vez esté buscando una educación completa sobre SQL - el curso de aprendizaje Curso completo de SQL sería una mejor opción para usted. Una vez completado el curso, dispondrá de las herramientas necesarias (incluyendo JOINs y alias) para trabajar libre y eficazmente con cualquier tipo de datos.