Compartilhar via


Subconsultas correlacionadas com aliases

As subconsultas correlacionadas podem ser usadas em operações como seleção de dados de uma tabela referenciada na consulta exterior. Nesse caso, um alias de tabela (também chamado de nome de correlação) deve ser usado para especificar inequivocamente qual referência de tabela deve ser usada. Por exemplo, você pode usar uma subconsulta correlacionada para encontrar os produtos fornecidos por mais de um fornecedor. Os aliases são necessários para distinguir as duas funções diferentes em que a tabela ProductVendor é exibida.

USE AdventureWorks2008R2;
GO
SELECT DISTINCT pv1.ProductID, pv1.BusinessEntityID
FROM Purchasing.ProductVendor pv1
WHERE ProductID IN
    (SELECT pv2.ProductID
     FROM Purchasing.ProductVendor pv2
     WHERE pv1.BusinessEntityID <> pv2.BusinessEntityID)
ORDER  BY pv1.BusinessEntityID

A consulta aninhada anterior é equivalente à seguinte autojunção:

USE AdventureWorks2008R2;
GO
SELECT DISTINCT pv1.ProductID, pv1.BusinessEntityID
FROM Purchasing.ProductVendor pv1
INNER JOIN Purchasing.ProductVendor pv2
ON pv1.ProductID = pv2.ProductID
    AND pv1.BusinessEntityID <> pv2.BusinessEntityID
ORDER BY pv1.BusinessEntityID

Consulte também

Conceitos