Menggunakan gabungan silang

Selesai

Gabungan silang hanyalah produk Kartesius dari dua meja. Menggunakan sintaks SQL-89 ANSI, Anda dapat membuat gabungan silang hanya dengan meninggalkan filter yang menghubungkan dua tabel. Menggunakan sintaks ANSI-92, itu sedikit lebih sulit; yang berarti bagus, karena secara umum, gabungan silang bukanlah sesuatu yang biasanya Anda inginkan. Dengan sintaks ANSI-92, sangat tidak mungkin Anda akan berakhir dengan gabungan silang secara tidak sengaja.

Untuk secara eksplisit membuat produk Kartesius, Anda menggunakan operator CROSS JOIN.

Operasi ini membuat kumpulan hasil dengan semua kemungkinan kombinasi baris input:

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

Meskipun hasil ini biasanya bukan output yang diinginkan, ada beberapa aplikasi praktis untuk menulis CROSS JOIN eksplisit:

  • Membuat tabel angka, dengan baris untuk setiap nilai yang mungkin dalam rentang.
  • Menghasilkan data dalam volume besar untuk pengujian. Ketika silang bergabung dengan dirinya sendiri, tabel dengan sedikitnya 100 baris dapat dengan mudah menghasilkan 10.000 baris output dengan sedikit pekerjaan dari Anda.

Sintaks CROSS JOIN

Saat menulis kueri menggunakan CROSS JOIN, pertimbangkan panduan berikut:

  • Tidak ada pencocokan baris yang dilakukan, sehingga tidak ada klausul ON yang digunakan. (Ini adalah kesalahan untuk menggunakan klausul ON dengan CROSS JOIN.)
  • Untuk menggunakan sintaks SQL-92 ANSI, pisahkan nama tabel input dengan operator CROSS JOIN.

Kueri berikut adalah contoh penggunaan CROSS JOIN untuk membuat semua kombinasi karyawan dan produk:

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