Çapraz birleşimleri kullanma

Tamamlandı

Çapraz birleşim, iki tablonun kartezyen ürünüdür. ANSI SQL-89 söz dizimini kullanarak, iki tabloyu bağlayan filtreden ayrılarak çapraz birleştirme oluşturabilirsiniz. ANSI-92 söz dizimini kullanmak biraz daha zordur; Bu iyi bir şey, çünkü genel olarak çapraz birleşim genellikle istediğiniz bir şey değildir. ANSI-92 söz dizimiyle, yanlışlıkla çapraz birleştirme ile sonuç olasılığınız oldukça düşüktür.

Kartezyen ürünü açıkça oluşturmak için CROSS JOIN işlecini kullanırsınız.

Bu işlem, giriş satırlarının tüm olası birleşimleriyle bir sonuç kümesi oluşturur:

SELECT <select_list>
FROM table1 AS t1
CROSS JOIN table2 AS t2;

Bu sonuç genellikle istenen bir çıkış olmasa da, açık bir CROSS JOIN yazmak için birkaç pratik uygulama vardır:

  • Bir aralıktaki her olası değer için bir satır içeren bir sayı tablosu oluşturma.
  • Test için büyük hacimli veriler oluşturma. Çapraz kendisine katıldığında, en az 100 satırı olan bir tablo, sizden çok az iş içeren 10.000 çıkış satırı oluşturabilir.

CROSS JOIN söz dizimi

CROSS JOIN ile sorgu yazarken aşağıdaki yönergeleri göz önünde bulundurun:

  • Gerçekleştirilen satırların eşleşmesi olmadığından ON yan tümcesi kullanılmaz. (CROSS JOIN ile ON yan tümcesi kullanmak bir hatadır.)
  • ANSI SQL-92 söz dizimini kullanmak için, giriş tablosu adlarını CROSS JOIN işleciyle ayırın.

Aşağıdaki sorgu, çalışanların ve ürünlerin tüm birleşimlerini oluşturmak için CROSS JOIN kullanma örneğidir:

SELECT emp.FirstName, prd.Name
FROM HR.Employee AS emp
CROSS JOIN Production.Product AS prd;