INNER JOIN ile genelde iki farkı tabloda iki kolonu birbirine bağlarız. Ancak bazen öyle durumlar olur ki, iki tabloda birden fazla kolonu da birbirine bağlama ihtiyacı duyabiliriz. Şimdi AdventureWorks veritabanı üzerinde bununla alakalı bir örnek yapalım. Öncelikle şekille ifade ediyorum :
Amacım Sales.SalesOrderDetail tablosu ile Sales.SpecialOfferProduct tablolarını birbirine bağlamak. Sales.SalesSpecialOfferProduct tablosu birleşik primary key özelliğine sahip bunların biri pecialOfferID, diğeri ProductID. Bu tablo üzerinde bir satırı belirlemek için her iki sütunu da kullanmamız gerekecek. O halde sorgumuz aşağıdaki gibi olursa istediğimize ulaşırız :
SELECT sod.SalesOrderID, sod.SalesORderDEtailID, so.ProductID, so.SpecialOfferID, so.ModifiedDate FROM Sales.SalesOrderDetail AS sod INNER JOIN Sales.SpecialOfferProduct AS so ON so.ProductID = sod.ProductID AND so.SpecialOfferID = sod.SpecialOfferID WHERE sod.SalesOrderID IN (51111,51112)