SQL RIGHT JOIN: Resultados de la tabla derecha

 La instrucción SQL RIGHT JOIN (o RIGHT OUTER JOIN) es un tipo de unión entre 2 tablas que retorna los registros de la tabla a la derecha (right) aunque no encuentre coincidencia con la tabla izquierda. Si hay un registro en la tabla derecha que no puede encontrar una coincidencia en la tabla izquierda, las columnas de la tabla izquierda serán NULL.

SQL RIGHT JOIN

¿Cuándo usar Right JOIN en SQL Server?

Si desea seleccionar los registros de la tabla del lado derecho, incluidos los registros que tienen un valor de clave externa nulo, debe usar la combinación SQL RIGHT JOIN.

Para simplificar la definición anterior, podemos decir que si desea recuperar todas las filas coincidentes de las tablas involucradas en la unión, así como las filas que no coinciden de la tabla del lado derecho, entonces necesita usar Right Outer Join en SQL Server. 

Sintaxis SQL RIGHT JOIN

Este comando SQL se utiliza de la siguiente manera:

SELECT *
FROM Nombre_table1
RIGHT JOIN Nombre_table2 ON Nombre_table1.id_codigo = Nombre_table2.fk_id_codigo

La sintaxis de esta consulta SQL RIGHT JOIN, también puede ser así:

SELECT *
FROM Nombre_table1
RIGHT OUTER JOIN Nombre_table2 ON Nombre_table1.id = Nombre_table2.fk_id

Esta sintaxis SQL RIGHT JOIN establece que debe enumerar todas las filas de la Nombre_tabla1 y Nombre_tabla2 (tabla a la derecha) y mostrar los datos asociados de la Nombre_tabla1 si hay una coincidencia entre la Nombre_table1.ID y Nombre_table2 FK_ID 2. Si no hay coincidencia, se mostrará el registro Nombre_table2 y todas las columnas Nombre_table1 serán NULL.

Ejemplo SQL RIGHT JOIN

Tomemos el ejemplo de una base de datos que contiene usuarios y un historial de compras de esos usuarios. Estas 2 tablas están conectadas entre sí gracias a la columna usuario_id de la tabla de pedidos. Esto le permite saber qué usuario está asociado con una compra.

Tabla de usuarios:

idpre_nomnombrecorreo electrónicociudadactivo
1QueridoMarechalmarechal@example.comParís1
2EsméeAnaesmee.lefort@example.comLyon0
3MarinaPaulm.prevost@example.comLille1
4LunaPedrolucrolland@example.comMarsella1

Tabla de compra:

usuario_iddate_achatnum_factprix_total
12013-01-23A00103203.14
12013-02-14A00104124.00
22013-02-17A00105149.45
32013-02-21A00106235.35
52013-03-02A0010847.58

 

Para mostrar todos los comandos con el nombre del usuario correspondiente normalmente es habitual utilizar INNER JOIN en SQL. Desafortunadamente, si el usuario ha sido eliminado de la tabla, entonces no devuelve la compra. El uso de SQL RIGHT JOIN le permite devolver todas las compras y mostrar el nombre del usuario si existe. Para ello es necesario utilizar esta consulta:

SELECT id, pre_nom, nom, 
usuario_id, fecha_achat, num_fact
 FROM usuario
 RIGHT JOIN compra ON usuario_id= compra.utilisateur_id

Resultados:

idpre_nomnomusuario_idfecha_achatnum_fact
1QueridoMarechal12013-01-23A00103
1QueridoMarechal12013-02-14A00104
2EsméeAna22013-02-17A00105
3MarinaPaul32013-02-21A00106
NULONULONULO52013-03-02A00107

Este resultado muestra que la factura A00108 está vinculada al número de usuario 5. Sin embargo, este usuario no existe o ya no existe. Gracias a SQL RIGHT JOIN, la compra sigue apareciendo pero la información relacionada con el usuario se sustituye por NULL.

Conclusión 

Aquí hay una lista de algunos consejos y trucos simples que debe saber sobre la operación RIGHT JOIN:

  • RIGHT JOIN y RIGHT OUTER JOIN son lo mismo. El nombre completo de RIGHT JOIN es técnicamente RIGHT OUTER JOIN. Si quisiera ser explícito, podría incluir la palabra ‘EXTERIOR’ en su consulta, pero comprenda que no es necesario. La palabra ‘EXTERIOR’ es opcional .
  • Como se discutió anteriormente, RIGHT JOIN es menos común que LEFT JOIN. Ya hemos discutido cómo las consultas RIGHT JOIN se pueden escribir como LEFT JOIN por lo general. Esta es la razón por la que no se ven a menudo en la naturaleza . Pero al menos ahora entiendes cómo funcionan.
  • Esta es la diferencia clave entre SQL RIGHT JOIN e INNER JOIN. Cuando una combinación interna solo devuelve filas que coinciden con la condición de combinación, en una combinación externa derecha, se garantiza que todas las filas de las tablas derechas se incluyen en el resultado.

Deja un comentario