Ejercicios de excel

Para aprender SQL Server, Excel, Word, Acces y más...

Uso de OUTER JOINs

Dom, 21/01/2018 - 22:19 -- jsequeiros

Hay dos tipos básicos de OUTER JOINs:  LEFT y RIGHT.  Ambos proporcionan una funcionalidad muy similar, pero existe una pequeña diferencia que depende del orden de las tablas en la consulta.  Usando el artículo de ventas de productos, si comienza a leer la consulta de izquierda a derecha, ¿qué tabla encuentra primero?  La tabla Production.Product, que lo convierte en la tabla de la izquierda.  La segunda tabla que encuentra (sigue leyendo a la derecha) es Sales.  SalesDeerDetail, la tabla derecha.  Esta tendencia continúa durante toda la consulta.
Por lo tanto, si desea recuperar una lista de productos (Production.Product), independientemente de su existencia en las ventas (SalesDeerDetail).
La tabla SalesOrderDetail, una LEFT OUTER JOIN debe ser su elección.  La siguiente figura ilustra un LEFT OUTER JOIN.

LEFT OUTER JOIN en SQL Server

Por otro lado, si intenta recuperar todas las ventas, independientemente de que estén asociadas o no a un producto, debe elegir un RIGHT OUTER JOIN.  La siguiente figura ilustra una RIGHT OUTER JOIN.

RIGHT OUTER JOIN en SQL Server

Independientemente del tipo de OUTER JOIN, la sintaxis es similar a la de INNER JOIN.  Reemplace INNER con LEFT OUTER o RIGHT OUTER.

Escribir una consulta OUTER JOIN

1. Abra el editor de consultas en SSMS.
2. En el editor de consultas, ingrese y ejecute el siguiente código T-SQL:

--Usar esta consulta para realizar una UNIÓN EXTERIOR  IZQUIERDA
SELECT
p.ProductID,
sd.ProductID,
p.Name AS ProductName,
sd.OrderQty,
sd.UnitPrice
FROM Production.Product AS p
LEFT OUTER JOIN Sales.SalesOrderDetail sd
ON p.ProductID = sd.ProductID
 

Resultados de la Consulta

La siguiente imagen muestra los resultados de la consulta LEFT OUTER JOIN

Resultados de la consulta  LEFT OUTER JOIN en SQL Server

Si se desplaza hacia abajo en el conjunto de resultados, debería comenzar a ver valores NULOS en las columnas que forman parte de la tabla Sales.SalesOrderDetail.  Este es un resultado directo del uso de una OUTER JOIN. Recuerde el área sombreada de la Figura 10-2 que ilustra el conjunto de resultados de un LEFT OUTER JOIN.  Las filas devueltas por la consulta son lo que debe esperar.  No solo se devuelven los productos asociados con las ventas, sino también los que no tienen ventas.

Añadir nuevo comentario