MySQL dokumentasi mencakup topik ini.
Berikut sinopsisnya. Saat menggunakan join
atau inner join
, on
kondisi adalah opsional. Ini berbeda dari standar ANSI dan berbeda dari hampir semua database lainnya. Efeknya adalah cross join
. Demikian pula, Anda dapat menggunakan on
klausa dengan cross join
, yang juga berbeda dari SQL standar.
Gabungan silang menciptakan produk Cartesian -- yaitu, setiap kemungkinan kombinasi 1 baris dari tabel pertama dan 1 baris dari tabel kedua. Penggabungan silang untuk tabel dengan tiga baris ('a', 'b', dan 'c') dan tabel dengan empat baris (misalnya 1, 2, 3, 4) akan memiliki 12 baris.
Dalam prakteknya, jika Anda ingin melakukan cross join, maka gunakan cross join
:
from A cross join B
jauh lebih baik daripada:
from A, B
dan:
from A join B -- with no on clause
on
klausa diperlukan untuk gabungan luar kanan atau kiri, jadi diskusi tidak relevan untuk mereka.
Jika Anda perlu memahami berbagai jenis gabungan, maka Anda perlu mempelajari basis data relasional. Stackoverflow bukanlah tempat yang tepat untuk tingkat diskusi seperti itu.