다음을 통해 공유


셋 이상의 테이블 조인

각 조인 사양은 두 개의 테이블만 조인하지만 FROM 절은 여러 개의 조인 사양을 포함할 수 있습니다. 이렇게 하면 하나의 쿼리에 대해 여러 테이블을 조인할 수 있습니다.

AdventureWorks2008R2 데이터베이스의 ProductVendor 테이블은 둘 이상의 테이블을 조인하는 것이 유리한 상황에 대한 좋은 예를 보여 줍니다. 다음 Transact-SQL 쿼리는 특정 하위 범주의 모든 제품 이름과 해당 공급업체 이름을 찾습니다.

SELECT p.Name, v.Name
FROM Production.Product p
JOIN Purchasing.ProductVendor pv
ON p.ProductID = pv.ProductID
JOIN Purchasing.Vendor v
ON pv.BusinessEntityID = v.BusinessEntityID
WHERE ProductSubcategoryID = 15
ORDER BY v.Name;

결과 집합은 다음과 같습니다.

Name                           Name

--------------------------------------------------------

LL Mountain Seat/Saddle        Chicago City Saddles

ML Mountain Seat/Saddle        Chicago City Saddles

HL Mountain Seat/Saddle        Chicago City Saddles

LL Road Seat/Saddle         Chicago City Saddles

ML Road Seat/Saddle         Chicago City Saddles

HL Road Seat/Saddle          Chicago City Saddles

LL Touring Seat/Saddle         Chicago City Saddles

ML Touring Seat/Saddle         Chicago City Saddles

HL Touring Seat/Saddle         Chicago City Saddles

HL Touring Seat/Saddle         Expert Bike Co

ML Touring Seat/Saddle         Expert Bike Co

LL Touring Seat/Saddle         Expert Bike Co

HL Road Seat/Saddle            First Rate Bicycles

LL Mountain Seat/Saddle        First Rate Bicycles

ML Mountain Seat/Saddle        First Rate Bicycles

LL Road Seat/Saddle            Hill's Bicycle Service

ML Road Seat/Saddle            Hill's Bicycle Service

HL Mountain Seat/Saddle        Hybrid Bicycle Center

(18 row(s) affected)

FROM 절에 지정된 테이블 중 하나인 ProductVendor의 열은 결과에 나타나지 않습니다. 또한 조인된 열인 ProductID 및 VendorID도 결과에 나타나지 않습니다. 하지만 ProductVendor를 중간 테이블로 사용하면 이러한 조인이 가능합니다.

ProductVendor는 조인에 포함된 다른 테이블의 중간 연결점이 되므로 조인의 중간 테이블인 ProductVendor 테이블을 변환 테이블이라고도 합니다.

둘 이상의 테이블을 조인하거나 둘 이상의 열 쌍을 조인하기 위해 동일한 문에 조인 연산자가 여러 개 있을 경우 조인 식을 AND 또는 OR로 연결할 수 있습니다.