Apa's perbedaan antara INNER JOIN, LEFT JOIN, RIGHT JOIN, dan FULL BERGABUNG?

Apa's perbedaan antara INNER JOIN, LEFT JOIN, RIGHT JOIN dan PENUH BERGABUNG di MySQL?

Mengomentari pertanyaan (4)
Larutan

Membaca ini artikel asli pada Kode Proyek akan banyak membantu anda: Representasi Visual dari SQL Bergabung.

Juga memeriksa posting ini: SQL SERVER – Kinerja yang lebih Baik – KIRI BERGABUNG atau TIDAK?.

Mencari asli di: Perbedaan antara JOIN dan OUTER JOIN di MySQL.

Komentar (34)

INNER JOIN mendapat semua catatan yang umum antara kedua tabel berdasarkan disertakan PADA klausa.

KIRI BERGABUNG mendapat semua catatan dari KIRI tabel tertaut tetapi jika anda telah memilih beberapa kolom dari tabel yang TEPAT, jika tidak ada catatan yang terkait, kolom ini akan berisi NULL.

TEPAT BERGABUNG seperti di atas, tetapi mendapatkan semua record di tabel KANAN.

PENUH BERGABUNG mendapatkan semua record dari tabel kedua dan menempatkan NULL dalam kolom mana yang berhubungan dengan catatan tidak ada di seberang meja.

Komentar (6)

SQL BERGABUNG klausa ini digunakan untuk menggabungkan baris dari dua tabel atau lebih, didasarkan pada bidang yang sama di antara mereka.

Ada berbagai jenis bergabung tersedia di SQL:

INNER JOIN: mengembalikan baris ketika ada pertandingan di kedua tabel.

KIRI BERGABUNG: mengembalikan semua baris dari tabel kiri, bahkan jika tidak ada pertandingan di tabel kanan.

TEPAT BERGABUNG: mengembalikan semua baris dari tabel yang tepat, bahkan jika tidak ada pertandingan di meja sebelah kiri.

PENUH BERGABUNG: menggabungkan hasil dari kedua kiri dan kanan bergabung dengan luar.

Bergabung dengan tabel yang akan berisi semua catatan dari kedua tabel dan mengisi NULLs untuk kehilangan pertandingan di kedua sisi.

DIRI BERGABUNG: digunakan untuk bergabung dalam tabel untuk dirinya sendiri seolah-olah ada dua tabel, sementara nama setidaknya salah satu tabel dalam pernyataan SQL.

CARTESIAN BERGABUNG: mengembalikan produk Cartesian dari set data dari dua atau lebih bergabung tabel.

KITA dapat mengambil masing-masing empat pertama bergabung di Rincian :

Kami memiliki dua tabel dengan nilai berikut.

TableA

id  firstName                  lastName
.......................................
1   arun                        prasanth                 
2   ann                         antony                   
3   sruthy                      abc                      
6   new                         abc                                           

TableB

id2 age Place
................
1   24  kerala
2   24  usa
3   25  ekm
5   24  chennai

....................................................................

INNER JOIN

Catatan :memberikan persimpangan dari dua tabel, yaitu baris yang mereka memiliki kesamaan di TableA dan TableB

Sintaks

SELECT table1.column1, table2.column2...
  FROM table1
 INNER JOIN table2
    ON table1.common_field = table2.common_field;

Menerapkannya dalam sampel tabel :

SELECT TableA.firstName,TableA.lastName,TableB.age,TableB.Place
  FROM TableA
 INNER JOIN TableB
    ON TableA.id = TableB.id2;

Hasilnya Akan

firstName       lastName       age  Place
..............................................
arun            prasanth        24  kerala
ann             antony          24  usa
sruthy          abc             25  ekm

KIRI BERGABUNG

Catatan : akan memberikan semua baris yang dipilih di TableA, ditambah umum dipilih baris di TableB.

Sintaks

SELECT table1.column1, table2.column2...
  FROM table1
  LEFT JOIN table2
    ON table1.common_field = table2.common_field;

Menerapkannya dalam sampel tabel :

SELECT TableA.firstName,TableA.lastName,TableB.age,TableB.Place
  FROM TableA
  LEFT JOIN TableB
    ON TableA.id = TableB.id2;

Hasil

firstName                   lastName                    age   Place
...............................................................................
arun                        prasanth                    24    kerala
ann                         antony                      24    usa
sruthy                      abc                         25    ekm
new                         abc                         NULL  NULL

TEPAT BERGABUNG

Catatan : akan memberikan semua baris yang dipilih di TableB, ditambah umum dipilih baris di TableA.

Sintaks

SELECT table1.column1, table2.column2...
  FROM table1
 RIGHT JOIN table2
    ON table1.common_field = table2.common_field;

Menerapkannya dalam sampel tabel :

SELECT TableA.firstName,TableA.lastName,TableB.age,TableB.Place
  FROM TableA
 RIGHT JOIN TableB
    ON TableA.id = TableB.id2;

Hasil

firstName                   lastName                    age     Place
...............................................................................
arun                        prasanth                    24     kerala
ann                         antony                      24     usa
sruthy                      abc                         25     ekm
NULL                        NULL                        24     chennai

PENUH BERGABUNG

Catatan :akan mengembalikan semua nilai yang dipilih dari kedua tabel.

Sintaks

SELECT table1.column1, table2.column2...
  FROM table1
  FULL JOIN table2
    ON table1.common_field = table2.common_field;

Menerapkannya dalam sampel tabel :

SELECT TableA.firstName,TableA.lastName,TableB.age,TableB.Place
  FROM TableA
  FULL JOIN TableB
    ON TableA.id = TableB.id2;

Hasil

firstName                   lastName                    age    Place
...............................................................................
arun                        prasanth                    24    kerala
ann                         antony                      24    usa
sruthy                      abc                         25    ekm
new                         abc                         NULL  NULL
NULL                        NULL                        24    chennai

Fakta Menarik

Untuk bergabung DALAM urutan yang doesn't peduli

Untuk (KIRI, KANAN atau PENUH) bergabung dengan LUAR,rangka peduli

Lebih baik untuk pergi check ini Link ini akan memberikan anda rincian menarik tentang agar bergabung

Komentar (10)