Pertanyaan Apa perbedaan antara INNER JOIN, LEFT JOIN, RIGHT JOIN, dan FULL JOIN? [duplikat]


Pertanyaan ini sudah memiliki jawaban di sini:

Apa perbedaannya INNER JOIN, LEFT JOIN, RIGHT JOIN dan FULL JOIN  di MySQL?


1201
2018-04-18 17:15


asal


Jawaban:


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

alt text

Periksa juga postingan ini: SQL SERVER - Performa Lebih Baik - LEFT JOIN atau NOT IN?.

Temukan yang asli di: Perbedaan antara JOIN dan OUTER JOIN di MySQL.


2491
2018-05-31 13:29



INNER JOIN mendapat semua catatan yang umum antara kedua tabel berdasarkan kunci asing

KIRI GABUNG mendapat semua catatan dari tabel yang terhubung KIRI tetapi jika Anda telah memilih beberapa kolom dari tabel KANAN, jika tidak ada catatan terkait, kolom ini akan berisi NULL

KANAN GABUNG seperti di atas tetapi mendapatkan semua catatan di tabel KANAN

FULL JOIN mendapat semua catatan dari kedua tabel dan menempatkan NULL di kolom di mana catatan terkait tidak ada di tabel yang berlawanan


530
2018-04-18 20:28



Klausa SQL JOIN digunakan untuk menggabungkan baris dari dua atau lebih tabel,   berdasarkan bidang umum di antara mereka.

Ada berbagai jenis gabungan yang tersedia di SQL:

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

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

KANAN GABUNG: mengembalikan semua baris dari tabel kanan, bahkan jika tidak ada kecocokan di tabel kiri.

FULL JOIN: Ini menggabungkan hasil dari gabungan sebelah kiri dan kanan.

Tabel gabungan akan berisi semua rekaman dari kedua tabel dan isi NULL untuk pertandingan yang hilang di kedua sisi.

SELF GABUNG: digunakan untuk bergabung dengan tabel untuk dirinya sendiri seolah-olah tabel itu dua tabel, sementara mengganti nama setidaknya satu meja dalam pernyataan SQL.

CARTESIAN JOIN: mengembalikan produk Cartesian dari set catatan dari dua atau lebih tabel yang digabungkan.

KAMI dapat mengambil masing-masing empat bergabung pertama di Detail:

Kami memiliki dua tabel dengan nilai-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 : itu memberikan persimpangan dari dua tabel, yaitu baris yang mereka miliki bersama di TableA dan TableB

Sintaksis

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

Menerapkannya di tabel sampel kami:

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

Hasilnya Akan Jadi

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

KIRI GABUNG

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

Sintaksis

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

Menerapkannya di tabel sampel kami:

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

KANAN GABUNG

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

Sintaksis

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

Menerapkannya di tabel sampel kami:

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

FULL JOIN

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

Sintaksis

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

Menerapkannya di tabel sampel kami:

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 yang menarik

Untuk INNER bergabung dengan pesanan tidak masalah

Untuk (LEFT, RIGHT atau FULL) OUTER bergabung, urutannya penting

Lebih baik pergi memeriksa ini Link ini akan memberi Anda rincian menarik tentang pesanan bergabung


493
2018-02-25 12:40