CROSS JOIN di SQL

Memasangkan setiap baris tabel pertama dengan setiap baris tabel kedua (semua kombinasi).

Penjelasan sederhana

CROSS JOIN memasangkan setiap baris dari tabel pertama dengan setiap baris dari tabel kedua, tanpa syarat apa pun. Kalau ada 4 baris dan 2 baris, hasilnya 4 × 2 = 8 baris.

Bayangkan menu kopi: 4 jenis minuman dan 2 ukuran. CROSS JOIN membuat daftar semua kombinasi yang mungkin. Ini berguna untuk membuat kerangka laporan, misalnya semua cabang × semua bulan, sebelum diisi angka.

Sintaks

SELECT a.kolom, b.kolom
FROM tabel_a AS a
CROSS JOIN tabel_b AS b;
BagianKeterangan
tanpa ONTidak ada syarat pasangan. Jumlah hasil = baris A x baris B.

Tanda [kurung siku] berarti bagian opsional. Kata kunci SQL tidak membedakan huruf besar-kecil, tapi menulisnya dengan huruf besar membuat query lebih mudah dibaca.

Contoh CROSS JOIN

Data contoh: departemen

Tabel departemen

idnama_deptlokasi
1 Keuangan Jakarta
2 Marketing Jakarta
3 IT Bandung
4 Legal Surabaya
query.sql
SELECT d.nama_dept, b.bulan
FROM departemen AS d
CROSS JOIN (SELECT 'Jan' AS bulan UNION ALL SELECT 'Feb') AS b
ORDER BY d.id;
>_ Jalankan & ubah query ini di browser

Hasil 8 baris

nama_deptbulan
Keuangan Jan
Keuangan Feb
Marketing Jan
Marketing Feb
IT Jan
IT Feb
Legal Jan
Legal Feb

4 departemen x 2 bulan = 8 baris. Berguna untuk membuat kerangka laporan sebelum diisi data.

Cara kerjanya, langkah demi langkah

  1. Query kecil di dalam kurung membuat tabel sementara berisi 2 bulan: Jan dan Feb.
  2. FROM departemen AS d CROSS JOIN (...) AS b: setiap departemen dipasangkan dengan kedua bulan.
  3. 4 departemen × 2 bulan = 8 baris: Keuangan-Jan, Keuangan-Feb, Marketing-Jan, dan seterusnya.
  4. ORDER BY d.id: diurutkan sesuai nomor departemen.

Dipakai untuk apa di kantor?

  • Membuat kerangka laporan bulanan supaya bulan tanpa transaksi tetap tampil dengan nilai 0.
  • Membuat semua kombinasi ukuran dan warna produk.

Kesalahan yang sering terjadi

  • Melakukan CROSS JOIN tanpa sengaja karena lupa menulis ON di JOIN biasa. Dua tabel berisi 10.000 baris bisa menghasilkan 100 juta baris.
Progres bab Gabung Tabel (JOIN) 0/7 dipelajari
Lanjut: UNION

Belajar SQL bareng mentor

Hafal sintaks itu mudah. Menjawab pertanyaan bisnis, itu skill.

Private Class Python & SQL untuk Data: dari query dasar sampai JOIN dan studi kasus kerja, dengan kurikulum dan jadwal yang menyesuaikan kamu.

Lihat Private Class