Database
 sql >> Teknologi Basis Data >  >> RDS >> Database

Cara Mendapatkan Semua Kemungkinan Kombinasi Baris Dari dua Tabel di SQL

Masalah:

Anda ingin mendapatkan semua kombinasi baris dari dua tabel di SQL.

Contoh:

Berikut adalah dua tabel:satu berisi huruf (letters ), dan yang lainnya berisi angka (numbers ):

surat
X
Y
angka
0
1
2

Solusi 1:

Untuk menggabungkan setiap baris letters tabel dengan setiap baris numbers tabel, kita akan menggunakan CROSS JOIN :

SELECT *
FROM letters
CROSS JOIN numbers;

Hasil querynya seperti ini:

surat angka
X 0
Y 0
X 1
Y 1
X 2
Y 2

Solusi 2:

Cara lain untuk melakukan CROSS JOIN adalah sebagai berikut:

SELECT *
FROM letters, numbers;

Ini akan mendapatkan hasil yang sama persis yang dihasilkan oleh kueri sebelumnya.

Diskusi:

Sebagai aturan umum, CROSS JOIN menghasilkan himpunan hasil di mana setiap baris dari satu tabel digabungkan ke setiap baris tabel lain. Dengan kata lain, jika tabel pertama menyimpan n baris dan tabel kedua menyimpan m baris, lalu CROSS JOIN akan menghasilkan produk Cartesian dari n × m baris. Inilah sebabnya mengapa ada enam baris yang dikembalikan oleh kueri dalam contoh di atas.

Karena CROSS JOIN menghasilkan semua kemungkinan kombinasi baris di antara tabel yang digabungkan, tidak perlu menentukan hubungan. Jadi, tidak seperti JOINs lainnya , tidak ada ON klausa dalam CROSS JOIN .


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jenis-jenis SQL JOIN

  2. Sekunder yang Dapat Dibaca dengan Anggaran

  3. Pengantar Hadoop dan Big Data

  4. Ambang Pengoptimalan – Pengelompokan dan Penggabungan Data, Bagian 4

  5. Pembuatan Data Sintetis