Uso del operador JOIN para fusionar tablas en SQL

Clase 15 de 29Curso de PostgreSQL

Resumen

Fusionar tablas en bases de datos es un proceso frecuente que suele requerir atención especial al orden y a las propiedades compartidas entre campos. El operador JOIN es fundamental para unir información proveniente de diferentes fuentes, especialmente cuando dos tablas comparten columnas con valores compatibles, como las columnas de identificación (ID).

¿Qué campos se usan para hacer un JOIN correctamente?

Al seleccionar campos para fusionar tablas, lo crucial es identificar los campos ID. Otros campos —como email o apellido— generalmente complican la unión por poseer información variable que no siempre coincide. En cambio, columnas como dirección ID, tienda ID o cliente ID facilitan compatibilizar tablas.

¿Cómo construir una consulta JOIN práctica?

Para ilustrar cómo funciona JOIN en SQL, observa un ejemplo sencillo donde se emplean las tablas customer y rental:

SELECT customer.first_name, customer.last_name, rental.rental_date
FROM customer
JOIN rental ON customer.customer_id = rental.customer_id;

En este ejemplo:

  • Se indican las tablas (customer, rental) y columnas específicas (first_name, last_name, rental_date).
  • El operador ON define la base común que posibilita el JOIN, es decir, los campos compartidos (customer_id).

La tabla mencionada primero establece la prioridad, lo que afecta a qué datos aparecen inicialmente en los resultados.

¿Por qué es importante el orden de las tablas en un JOIN?

La posición de las tablas en una consulta SQL influye en los resultados obtenidos. Modificar esta posición puede implicar errores o necesitar cambios adicionales en toda la consulta. El orden, entonces, sí afecta directamente el proceso:

  • Si una consulta inicialmente menciona la tabla customer y después rental, cambiar el orden podría complicar los resultados y requerir ajustes adicionales.

¿Cuál es la diferencia entre JOIN y FULL JOIN?

Es posible realizar una fusión total con la instrucción FULL JOIN, mostrando información integral de ambas tablas:

SELECT customer.first_name, rental.rental_date
FROM customer
FULL JOIN rental ON customer.customer_id = rental.customer_id;

FULL JOIN muestra datos completos, aunque faltasen elementos en alguna tabla relacionada. Esta característica distingue a FULL JOIN de JOIN tradicional, que solo devuelve correspondencias exactas.

¿Cómo utilizar la herramienta EXPLAIN en SQL?

En caso de dudas respecto a cómo funciona una unión, SQL ofrece la herramienta EXPLAIN. Al ejecutarla (presionando la tecla 'e' en PGAdmin):

  • Proporciona una explicación detallada del proceso, mostrando gráficamente qué tablas y columnas están involucradas.
  • Ofrece documentación exportable sobre cómo está operando un JOIN específico, facilitando así la comprensión visual del proceso.

Usar esta técnica ayuda en la práctica para comprender más claramente cómo se establecen diferentes tipos de unión, al permitir ver visualmente la lógica operativa de tus consultas.