Pertanyaan LEFT JOIN vs. LEFT OUTER JOIN dalam SQL Server


Apa perbedaan antara LEFT JOIN dan LEFT OUTER JOIN?


1227
2018-01-02 08:30


asal


Jawaban:


Sesuai dokumentasi: FROM (Transact-SQL):

<join_type> ::= 
    [ { INNER | { { LEFT | RIGHT | FULL } [ OUTER ] } } [ <join_hint> ] ]
    JOIN

Kata kunci OUTER ditandai sebagai opsional (terlampir dalam tanda kurung siku), dan apa artinya ini dalam hal ini adalah apakah Anda menentukan atau tidak membuat perbedaan. Perhatikan bahwa sementara elemen lain dari klausa penggabungan juga ditandai sebagai opsional, pergi mereka tentu saja akan membuat perbedaan.

Misalnya, seluruh tipe-bagian dari JOIN klausul adalah opsional, dalam hal ini adalah default INNER jika Anda hanya menentukan JOIN. Dengan kata lain, ini legal:

SELECT *
FROM A JOIN B ON A.X = B.Y

Berikut ini daftar sintaks yang setara:

A LEFT JOIN B            A LEFT OUTER JOIN B
A RIGHT JOIN B           A RIGHT OUTER JOIN B
A FULL JOIN B            A FULL OUTER JOIN B
A INNER JOIN B           A JOIN B

Juga lihat jawaban yang saya tinggalkan di pertanyaan SO lain ini: SQL kiri bergabung vs beberapa tabel pada baris FROM?.

enter image description here


1796
2018-01-02 08:51



Untuk menjawab pertanyaan Anda tidak ada perbedaan antara LEFT JOIN   dan LEFT OUTER JOIN, mereka sama persis itu mengatakan ...

Di tingkat atas, ada 3 jenis gabungan:

  1. BATIN
  2. LUAR
  3. MENYEBERANG

  1. INNER JOIN - menjemput data jika ada di kedua tabel.

  2. GABUNG LUAR BIASA adalah dari 3 jenis:

    1. LEFT OUTER JOIN - menjemput data jika ada di tabel kiri.
    2. RIGHT OUTER JOIN - menjemput data jika ada di tabel kanan.
    3. FULL OUTER JOIN - menjemput data jika ada di salah satu dari dua tabel.
  3. CROSS JOIN, seperti namanya, tidak [n X m] yang menggabungkan segalanya dengan segalanya.
    Mirip dengan skenario di mana kami hanya mencantumkan tabel untuk bergabung (di FROM klausa dari SELECT pernyataan), menggunakan koma untuk memisahkannya.


Poin yang harus diperhatikan:

  • Jika Anda menyebutkan saja JOIN maka secara default itu adalah INNER JOIN.
  • Sebuah OUTER gabung harus LEFT | RIGHT | FULL Anda tidak bisa begitu saja mengatakannya OUTER JOIN.
  • Anda bisa menjatuhkan OUTER kata kunci dan katakan saja LEFT JOIN atau RIGHT JOIN atau FULL JOIN.

Bagi mereka yang ingin memvisualisasikan ini dengan cara yang lebih baik, silakan buka tautan ini: Penjelasan Visual tentang SQL Bergabung


621
2017-12-09 18:05



Apa perbedaan antara bergabung kiri dan gabungan luar kiri?

Tidak ada. LEFT JOIN dan LEFT OUTER JOIN ekuivalen.


274
2018-01-02 08:31



Baca lebih lanjut di Representasi Visual dari SQL Bergabung

Visual Representation of SQL Joins


117
2017-10-28 23:02



Saya seorang DBA PostgreSQL, sejauh yang saya bisa mengerti perbedaan antara luar atau tidak gabungan luar adalah topik yang banyak dibahas di internet. Sampai hari ini saya tidak pernah melihat perbedaan antara keduanya; Jadi saya melangkah lebih jauh dan saya mencoba mencari perbedaan di antara mereka. Pada akhirnya saya membaca seluruh dokumentasi tentang itu dan saya menemukan jawabannya untuk ini,

Jadi jika Anda melihat dokumentasi (setidaknya di PostgreSQL), Anda dapat menemukan frasa ini:

"Kata-kata INNER dan OUTER bersifat opsional dalam semua bentuk. INNER adalah default; LEFT, RIGHT, dan FULL menyiratkan bergabung luar. " 

Dengan kata lain,

LEFT JOIN dan LEFT OUTER JOIN ADALAH SAMA

RIGHT JOIN dan RIGHT OUTER JOIN ADALAH SAMA

Saya berharap ini dapat menjadi kontribusi bagi mereka yang masih berusaha menemukan jawabannya.


52
2017-08-30 02:33



Tidak ada yang perlu dikatakan dalam kata-kata di samping ini:enter image description here


44
2017-08-12 22:05



Left Join dan Left Outer Join adalah satu dan sama. Yang pertama adalah singkatan untuk yang terakhir. Hal yang sama dapat dikatakan tentang Right Join dan Right Outer Join hubungan. Demonstrasi akan menggambarkan kesetaraan. Contoh kerja dari setiap kueri telah disediakan melalui SQL Fiddle. Alat ini akan memungkinkan tangan untuk memanipulasi kueri.

Diberikan

enter image description here

Gabung Kiri dan Left Outer Join

enter image description here

Hasil

enter image description here


Bergabung Benar dan Gabung Luar Kanan

enter image description here

Hasil

enter image description here


37
2018-05-22 17:09



Saya merasa lebih mudah untuk memikirkan Bergabung dalam urutan berikut:

  • CROSS JOIN - sebuah produk Cartesian dari kedua tabel. SEMUA bergabung dimulai di sini
  • INNER JOIN - CROSS JOIN dengan filter ditambahkan.
  • OUTER JOIN - INNER JOIN dengan elemen yang hilang (baik dari tabel KIRI atau KANAN) ditambahkan sesudahnya.

Sampai saya menemukan model yang relatif sederhana ini, GABUNG selalu sedikit lebih dari seni hitam. Sekarang mereka masuk akal.

Semoga ini membantu lebih dari itu membingungkan.


34
2017-12-29 21:01



Mengapa LEFT / RIGHT dan LEFT OUTER / RIGHT OUTER sama? Mari kita jelaskan mengapa kosakata ini. Memahami bahwa KIRI dan KEMBALI bergabung adalah kasus-kasus khusus dari GELOMBANG bergabung, dan karena itu tidak bisa apa pun selain OUTER LEFT / OUTER RIGHT. GELOMBANG OUTER juga disebut PENUH LUAR sebagai lawan KIRI dan KANAN bergabung yang SEBAGIAN hasil dari OUTER bergabung. Memang:

Table A | Table B     Table A | Table B      Table A | Table B      Table A | Table B
   1    |   5            1    |   1             1    |   1             1    |   1
   2    |   1            2    |   2             2    |   2             2    |   2
   3    |   6            3    |  null           3    |  null           -    |   -
   4    |   2            4    |  null           4    |  null           -    |   -
                        null  |   5             -    |   -            null  |   5
                        null  |   6             -    |   -            null  |   6

                      OUTER JOIN (FULL)     LEFT OUTER (partial)   RIGHT OUTER (partial)

Sekarang jelas mengapa operasi tersebut memiliki alias, dan jelas hanya ada 3 kasus: INNER, OUTER, CROSS. Dengan dua sub-kasus untuk OUTER. Kosakata, cara guru menjelaskan ini, serta beberapa jawaban di atas, sering membuatnya tampak seperti ada banyak jenis bergabung yang berbeda. Tapi sebenarnya sangat sederhana.


26
2018-04-17 21:08



Terutama ada tiga jenis GABUNG

  1. Inner: menjemput data, yang ada di kedua tabel
    • Hanya GABUNG berarti INNER JOIN
  2. Luar: terdiri dari tiga jenis

    • LEFT OUTER - - menjemput data hanya dalam tabel kiri & kondisi pencocokan
    • RIGHT OUTER - - menjemput data hanya dalam tabel kanan & kondisi pencocokan
    • FULL OUTER - - menjemput data menampilkan salah satu atau kedua tabel
    • (LEFT atau RIGHT atau FULL) OUTER JOIN dapat ditulis tanpa menulis "OUTER"
  3. Cross Join: menggabungkan segalanya ke segalanya


15
2018-01-18 12:29