Utilice los JOIN de forma eficaz (MODULO 5) - guillermopetcho/Coursera-Certificate----Data-Analytics-Google GitHub Wiki

En esta lectura, repasará cómo se utilizan los JOINs y conocerá algunos Recursos que puede utilizar para aprender más sobre ellos. Un JOIN combina tablas utilizando una clave primaria o foránea para alinear la información procedente de ambas tablas en el proceso de combinación. Los JOINs utilizan estas claves para identificar las relaciones y los valores correspondientes entre las tablas.

Si necesita que le refresquen la memoria sobre claves primarias y foráneas, consulte el glosario de este curso, o vuelva a Bases de datos en la Analítica de datos.

La sintaxis general de JOIN

SELECT 
   -- table columns from tables are inserted here
   table_name1.column_name
   table_name2.column_name
FROM
   table_name1
JOIN
   table_name2
ON table_name1.column_name = table_name2.column_name

Como puede ver en la sintaxis, la sentencia JOIN forma parte de la cláusula FROM de la consulta. JOIN en SQL indica que se van a combinar datos de dos tablas. ON en SQL identifica cómo se van a emparejar las tablas para que se combine la información correcta de ambas. Tipos de JOINs

Existen cuatro formas generales de realizar JOINs en las consultas SQL: INNER, LEFT, RIGHT, y FULL OUTER.

He aquí lo que hacen estas diferentes consultas JOIN. INNER JOIN

INNER es opcional en esta consulta SQL porque es la operación JOIN por defecto, así como la más utilizada. Puede que la vea sólo como JOIN. INNER JOIN devuelve registros si los datos viven en ambas tablas. Por ejemplo, si utiliza INNER JOIN para las tablas customers y orders y hace coincidir los datos utilizando la clave customer_id, combinará los datos de cada customer_id que exista en ambas tablas. Si un customer_id existe en la tabla customers pero no en la orders, los datos para ese customer_id no se unen ni son devueltos por la consulta.

SELECT
   customers.customer_name,
   orders.product_id,
   orders.ship_date
FROM
   customers 
INNER JOIN 
   orders 
ON customers.customer_id = orders.customer_id

Los resultados de la consulta podrían parecerse a los siguientes, donde customer_name procede de la tabla clients y product_id y ship_date proceden de la tabla orders:

Screenshot from 2024-12-17 17-33-17

Los datos de ambas tablas se unieron haciendo coincidir el customer_id común a ambas tablas. Observe que customer_id no aparece en los resultados de la consulta. Simplemente se utiliza para establecer la relación entre los datos de las dos tablas para que los datos puedan unirse y devolverse. LEFT JOIN

Usted puede ver esto como LEFT OUTER JOIN, pero la mayoría de los usuarios prefieren LEFT JOIN. Ambas son sintaxis correctas. LEFT JOIN devuelve todos los registros de la tabla izquierda y sólo los registros coincidentes de la tabla derecha. Utilice LEFT JOIN siempre que necesite los datos de toda la primera tabla y los valores de la segunda, si existen. Por ejemplo, en la consulta siguiente, LEFT JOIN devolverá customer_name con el correspondiente sales_rep, si está disponible. Si hay un cliente que no interactuó con un representante de ventas, ese cliente seguiría apareciendo en los resultados de la consulta pero con un valor NULL para sales_rep.

SELECT
   customers.customer_name, 
   sales.sales_rep
FROM 
   customers 
LEFT JOIN 
   sales 
ON customers.customer_id = sales.customer_id

Los resultados de la consulta podrían parecerse a los siguientes, donde customer_name procede de la tabla customers y sales_rep de la tabla sales. De nuevo, los datos de ambas tablas se unieron haciendo coincidir el customer_id común a ambas tablas aunque customer_id no se devolviera en los resultados de la consulta.

Screenshot from 2024-12-17 17-34-14

RIGHT JOIN

Puede verlo como RIGHT OUTER JOIN o RIGHT JOIN. RIGHT JOIN devuelve todos los registros de la tabla derecha y los registros correspondientes de la tabla izquierda. En la práctica, RIGHT JOIN se utiliza muy poco. La mayoría de la gente simplemente cambia las tablas y se queda con LEFT JOIN. Pero utilizando el ejemplo anterior para LEFT JOIN, la consulta utilizando RIGHT JOIN tendría el siguiente aspecto:

SELECT
   sales.sales_rep,
   customers.customer_name
FROM 
  sales 
RIGHT JOIN 
  customers 
ON sales.customer_id = customers.customer_id

Los resultados de la consulta son los mismos que en el ejemplo anterior de LEFT JOIN.

Screenshot from 2024-12-17 17-35-20

FULL OUTER JOIN

A veces puede ver esto como FULL JOIN. FULL OUTER JOIN devuelve todos los registros de las tablas especificadas. Puede combinar tablas de esta manera, pero recuerde que esto puede suponer potencialmente una gran extracción de datos como resultado. FULL OUTER JOIN devuelve todos los registros de ambas tablas incluso si los datos no están poblados en una de las tablas. Por ejemplo, en la consulta siguiente, obtendrá todos los clientes y las fechas de envío de sus productos. Como está utilizando FULL OUTER JOIN, es posible que obtenga clientes sin las fechas de envío correspondientes o fechas de envío sin los clientes correspondientes. Se devuelve un valor NULL si los datos correspondientes no existen en ninguna de las tablas.

SELECT
   customers.customer_name,
   orders.ship_date
FROM 
   customers 
FULL OUTER JOIN 
   orders
ON customers.customer_id = orders.customer_id

Screenshot from 2024-12-17 17-36-00

Para más información

JOINs le serán útiles para trabajar con bases de datos relacionales y SQL, y tendrá muchas oportunidades de practicarlas por su cuenta. Aquí tiene otros Recursos que pueden darle más información sobre JOINs y cómo utilizarlos:

[JOINs SQL](https://www.w3schools.com/sql/sql_join.asp)

: Esta es una buena explicación básica de JOINs con ejemplos. Si necesita un recordatorio rápido de lo que hacen los distintos JOINs, éste es un buen recurso para marcar y volver a él más tarde.

Base de datos JOINs - Introducción a los tipos y conceptos de JOIN

: Se trata de una introducción realmente completa a JOINs. Este artículo no sólo explica qué son los JOINs y cómo utilizarlos, sino que también explica los distintos escenarios con más detalle de cuándo y por qué utilizaría los diferentes JOINs. Se trata de un gran recurso si está interesado en aprender más sobre la lógica que hay detrás de JOINing.

Tipos de JOIN SQL explicados en visuales

: Este recurso tiene una representación visual de los diferentes JOINs. Es una forma realmente útil de pensar en JOINs si usted es un estudiante visual, y puede ser una forma realmente útil de recordar los diferentes JOINs.

JOINs SQL: Uniendo datos de una unión a la vez

: Este recurso no sólo tiene una explicación detallada de JOINs con ejemplos, sino que también proporciona datos de ejemplo que puede utilizar para seguir su guía paso a paso. Es una forma útil de practicar JOINs con algunos datos reales.

SQL JOIN:

 Este es otro recurso que ofrece una explicación clara de JOINs y utiliza ejemplos para demostrar cómo funcionan. Los ejemplos también combinan JOINs con la asignación de alias. Esta es una gran oportunidad para ver cómo JOINs puede combinarse con otros conceptos de SQL que ha estado aprendiendo en este curso.