Anasayfa / Yazılım / SQL / CROSS JOIN Fonksiyonu

CROSS JOIN Fonksiyonu

Tabloları birleştirme fonksiyonlarından bir diğeri de CROSS JOIN fonksiyonudur. Bu fonksiyon nadiren kullanılır. Aslında iki tablonun kartezyen çarpma işlemini gerçekleştirmektedir. Yani bir a tablosunda yer alan her satır veri bir diğer b tablosundaki yer alan her satırdaki veri ile eşleşir. Syntax olarak kullanımı :

SELECT listelenecek kolonlar FROM tablo1 CROSS JOIN tablo1

Söz diziminde yani syntaxda görüldüğü üzere FROM’dan sonra herhangi bir koşul söz konusu değil. Çünkü CROSS JOIN mantığına koşul olayı ters, üstte de belirttiğim gibi bir tablodaki her veri satırı diğer tablodaki veri satırı ile eşleşiyor. Şimdi adventureworks 2012 veri tabanı üzerinde bir query oluşturalım.

SELECT Urun.ProductID, Bolge.LocationID FROM Production.Product AS Urun
CROSS JOIN Production.Location AS Bolge ORDER BY ProductID

Sorgumda Production.Product tablosundaki ProductID ile Production.Location tablosundaki LocationID kolonlarını CROSS JOIN ile listeliyorum. Burada Production.Product tablosunda 504 veri var. Production.Location tablosunda ise 14 veri var. Dolayısı ile 504 * 14 = 7056 satır veri listelenecek. Yani iki tablonun kartezyenini alıyoruz. Aşağıdaki resimden de sorgunun sonucunu görebilirsiniz.

2013022501

Şimdi de aynı sorguyu LocationID’ye göre sıralayalım.

SELECT Urun.ProductID, Bolge.LocationID FROM Production.Product AS Urun
CROSS JOIN Production.Location AS Bolge ORDER BY LocationID

Bunun sonucunda da her bir LocationID değeri için 504 farklı ProductID değeri sıralanacak.

2013022502

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir