Apa's perbedaan antara INNER JOIN
, LEFT JOIN
, RIGHT JOIN
dan PENUH BERGABUNG
di MySQL?
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.
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.
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