Apakah mungkin untuk menulis query join tanpa ON
pernyataan? dan bagaimana gabungan ini LEFT JOIN, RIGHT JOIN
bekerja.
mysql
join
left-join
inner-join
right-join
Alexander T.
sumber
sumber
ON
klausa memberi tahu server bagaimana tabel terkait, tidak. Jika jenis gabungan Anda yang berbeda semuanya memberikan hasil yang sama, Anda salah melakukannya, dan menambahkan beberapa kode dapat membantu kami menemukan masalah Anda. Sementara itu, kunjungi blog Jeff Atwood untuk intro 2 menit tentang jenis gabungan yang berbeda.Jawaban:
Dokumentasi MySQL mencakup topik ini.
Berikut sinopsisnya. Saat menggunakan
join
atauinner join
,on
kondisinya opsional. Ini berbeda dari standar ANSI dan berbeda dari hampir semua database lainnya. Efeknya adalah across join
. Demikian pula, Anda dapat menggunakanon
klausa withcross join
, yang juga berbeda dari SQL standar.Gabungan silang menciptakan produk Kartesius - yaitu, setiap kemungkinan kombinasi 1 baris dari tabel pertama dan 1 baris dari tabel kedua. Gabungan 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, gunakan
cross join
:jauh lebih baik daripada:
dan:
The
on
klausul diperlukan untuk hak atau kiri luar bergabung, sehingga diskusi tidak relevan bagi mereka.Jika Anda perlu memahami berbagai jenis gabungan, maka Anda perlu mempelajari beberapa basis data relasional. Stackoverflow bukanlah tempat yang tepat untuk tingkat diskusi tersebut.
sumber
Lihat beberapa contoh di http://www.sitepoint.com/understanding-sql-joins-mysql-database/
Anda dapat menggunakan 'MENGGUNAKAN' alih-alih 'AKTIF' seperti dalam kueri
sumber