GABUNG vs. GABUNGAN DALAM dan GABUNGAN LUAR

27

Saya tahu ada perbedaan antara INNER JOINdan FULL OUTER JOIN, aku bisa melihatnya, tapi, apa perbedaan antara dua berikut: JOIN ... ON...dan INNER JOIN...ON...dan masih belum JOIN...ON...vsFULL OUTER JOIN...ON...

Alasannya adalah saya pikir mungkin hanya menggunakan JOINmengacaukan permintaan saya sedang mengerjakan yang diposting pada SO, tautan ke pertanyaan DI SINI.

Jadi pada dasarnya apa perbedaan sintaksis antara operasi set yang sebenarnya sendiri?

Terima kasih,

MCP_infiltrator
sumber
1
"Cross postingan" memposting pertanyaan yang sama di berbagai forum. Memposting tautan adalah baik dan diinginkan.
choroba
Ok, saya akan memposting tautan ke pertanyaan, kode saya mengembalikan banyak duplikat dan itu membuat saya gila ... Saya bahkan belum minum kopi pagi hari saya lol
MCP_infiltrator
4
@MCP_infiltrator lihatlah mungkin penjelasan terbaik di luar sana: codinghorror.com/blog/2007/10/…
mkk
Jika masalah sebenarnya adalah bahwa kode Anda mengembalikan duplikat terlalu banyak, Anda mungkin ingin mengajukan pertanyaan lain di mana ini adalah poin utama. Dan Anda mungkin ingin memposting kode Anda. Ketika saya telah membantu orang dengan masalah duplikat di masa lalu, biasanya karena kondisi gabungan yang salah, atau kadang-kadang karena pemetaan yang buruk antara model data SQL dan model data relasional.
Walter Mitty
Hai @WalterMitty pertanyaannya diposting di SO, saya pikir bergabung dengan saya adalah masalah, tetapi pada catatan lain saya juga hanya ingin tahu, saya hanya sekitar 6 bulan menulis SQL dan belajar sendiri, tautannya ada di pertanyaan.
MCP_infiltrator

Jawaban:

33

JOINdan INNER JOINsama, kata kunci dalam adalah opsional karena semua gabungan dianggap sebagai gabungan dalam kecuali ditentukan lain. Perbedaan antara JOINdan FULL OUTER JOINsama dengan perbedaan antara INNER JOINdan FULL OUTER JOIN.

Sebuah INNER JOINhanya akan mengembalikan baris yang cocok jika satu baris dalam tabel A cocok dengan banyak baris dalam tabel B, tabel Sebuah baris akan diulang dengan setiap baris tabel B dan sebaliknya.

A FULL OUTER JOINakan mengembalikan semua yang dilakukan gabungan internal dan mengembalikan semua baris yang tidak cocok dari setiap tabel.

Ryathal
sumber
5
Terima kasih, saya tidak tahu itu JOINdan INNER JOINpernyataan yang setara.
MCP_infiltrator
7
Praktik terbaik adalah secara eksplisit menulis INNER GABUNG untuk menghindari kebingungan.
Neil