
Resumen:
en este tutorial, aprenderás a usar la cláusula RIGHT JOIN de SQL Server para consultar datos de dos tablas.
Introducción a la cláusula RIGHT JOIN de SQL Server
RIGHT JOIN combina datos de dos o más tablas. La cláusula RIGHT JOIN comienza a seleccionar datos de la tabla de la derecha y a coincidir con las filas de la tabla de la izquierda. RIGHT JOIN devuelve un conjunto de resultados que incluye todas las filas de la tabla de la derecha, tengan o no filas coincidentes de la tabla de la izquierda. Si una fila de la tabla de la derecha no tiene filas coincidentes de la tabla de la izquierda, la columna de la tabla de la izquierda en el conjunto de resultados tendrá nulos, otras cláusulas que puedes utilizar para hacer combinaciones entre tablas son INNER JOIN y LEFT JOIN.
A continuación, se muestra la sintaxis de la cláusula RIGHT JOIN en un SELECT:
SELECT
select_list
FROM
T1
RIGHT JOIN T2 ON join_predicate;
En esta sintaxis, T1 es la tabla de la izquierda y T2 es la tabla de la derecha.
Ten en cuenta que RIGHT JOIN y RIGHT OUTER JOIN es lo mismo. La palabra clave OUTER es opcional.
El siguiente diagrama de Venn ilustra la operación RIGHT JOIN:
Ejemplo de RIGHT JOIN de SQL Server
Usaremos la tabla sales.order_items y production.products de la base de datos de muestra para los ejemplos.
El siguiente SELECT devuelve todos los order_id de sales.order_items y el nombre del producto de la tabla production.products:
SELECT
product_name,
order_id
FROM
sales.order_items o
RIGHT JOIN production.products p
ON o.product_id = p.product_id
ORDER BY
order_id;
Resultado:
La consulta devolvió todas las filas de la tabla production.products (tabla de la derecha) y las filas de la tabla sales.order_items (tabla de la izquierda). Si un producto no tiene ventas, la columna order_id tendrá un valor nulo.
Para obtener los productos que no tienen ventas, agrega una cláusula WHERE y IS NULL a la consulta anterior para filtrar los productos que tienen ventas:
SELECT
product_name,
order_id
FROM
sales.order_items o
RIGHT JOIN production.products p
ON o.product_id = p.product_id
WHERE
order_id IS NULL
ORDER BY
product_name;
Resultado:
El siguiente diagrama de Venn ilustra la operación RIGHT JOIN anterior:
En este tutorial, has aprendido a usar el RIGHT JOIN de SQL Server para consultar datos de dos tablas.