Cara Menggunakan JOIN di SQL dan Perbedaannya

Bagikan di

Saat kamu belajar SQL, tidak akan lengkap jika kamu tidak mengerti tentang JOIN. Perintah JOIN sangat penting karena kamu bisa menggabungkan data dari dua atau lebih tabel menjadi satu. Terdapat beberapa jenis perintah JOIN di SQL yang dapat kamu gunakan. Apa perbedaan masing-masing perintah JOIN di SQL tersebut?

JOIN di SQL

 

SQL JOIN

SQL JOIN adalah salah satu perintah di dalam SQL. Perintah JOIN ini digunakan untuk menggabungkan data dari dua atau lebih tabel sehingga menjadi satu. Untuk dapat melakukan perintah JOIN syaratnya adalah terdapat kolom yang mempunyai hubungan diantara tabel-tabel tersebut.

Contohnya, kamu memiliki tabel user dan tabel order. Tabel user dapat di lakukan JOIN terhadap tabel order karena pada tabel order ada kolom user_id yang berhubungan dengan kolom id pada table user. Silakan lihat gambaran kedua tabel tersebut di bawah ini.

Representasi Tabel yang digunakan untuk contoh

 

Kapan SQL JOIN Digunakan

JOIN di SQL digunakan pada saat kamu ingin menggabungkan data dari banyak tabel. Biasanya, hal ini terjadi ketika data yang kamu perlukan berada di tabel yang berbeda-beda.

Pada contoh tabel user dan tabel order di atas, kamu tidak mungkin menggabungkan tabel tersebut pada database karena satu user dapat memiliki banyak order. Menggabungkan kedua tabel itu di database membuat tabel tersebut tidak normalized yang merupakan hal yang kurang baik pada database jenis relasional.

Karena kamu tidak bisa menggabungkannya sedari awal di database, kamu hanya dapat menggabungkannya pada saat melakukan query. Hal inilah yang ingin dicapai dengan menggunakan perintah JOIN di SQL. Agar, kamu dapat menggabungkan datamu yang terpisah karena normalisasi tabel.

 

Jenis-jenis JOIN yang ada di SQL

Pada umumnya, terdapat empat jenis JOIN di SQL yakni:

  • INNER JOIN
  • LEFT JOIN
  • RIGHT JOIN
  • FULL JOIN

Masing-masing JOIN ini memiliki kegunaan dan perbedaannya di dalam SQL.

 

Perbedaan Jenis JOIN SQL

Masing-masing JOIN memiliki kegunaannya sendiri-sendiri. Berikut merupakan perbedaan dan penjelasan untuk masing-masing JOIN yang ada di SQL.

Untuk contoh pada masing-masing jenis JOIN, akan menggunakan data tabel berikut ini.

Tabel user

id    | name           |
------+----------------+
1     | Anto           |
2     | Alam           |
3     | Budi           |
4     | Kris           |

Tabel order

id    | user_id  | total    |
------+----------+----------+
1     | 2        | 50000    |
2     | 2        | 76000    |
3     | 3        | 10000    |
4     | 4        | 500      |
5     | 10       | 99999    |

 

INNER JOIN

INNER JOIN mengambil data dimana kedua tabel memiliki data untuk syarat yang tertera pada perintah ON. Misal perintah SQL berikut ini,

SELECT user.name, order.total
FROM order
INNER JOIN user
ON user.id = order.user_id;

Pada perintah SQL di atas, hanya akan memunculkan data dari tabel order dan user yang keduanya memiliki user_id pada order sama dengan id pada tabel user. Berikut ini adalah hasil dari perintah SQL di atas.

name    | total    |
--------+----------+
Alam    | 50000    |
Alam    | 76000    |
Budi    | 10000    |
Kris    | 500      |

Berikut gambarannya pada diagram Venn.

Inner Join di SQL

 

LEFT JOIN

Perintah LEFT JOIN akan mengambil semua data yang ada di tabel sebelah kiri dari perintah LEFT JOIN, dan akan mencoba menggabungkannya dengan tabel kanan. Jika tidak ada pasangannya, nilai dari table kiri tetap ada dan nilai yang tidak ada di tabel kanan akan menjadi NULL.

Contoh menggunakan perintah SQL berikut ini,

SELECT user.name, order.total
FROM order
LEFT JOIN user
ON user.id = order.user_id;

Perintah SQL di atas, akan memunculkan seluruh data dari tabel order. Namun, hanya beberapa data yang memenuhi syarat dari tabel user yang muncul. Berikut ini adalah hasil dari perintah SQL di atas.

name    | total    |
--------+----------+
Anto    | NULL     |
Alam    | 50000    |
Alam    | 76000    |
Budi    | 10000    |
Kris    | 500      |

Berikut gambarannya pada diagram Venn.

Left Join di SQL

 

RIGHT JOIN

Berkebalikan dengan LEFT JOIN, perintah RIGHT JOIN akan mengambil semua data yang ada di tabel sebelah kanan dari perintah RIGHT JOIN. Perintah ini akan mencoba menggabungkannya dengan tabel yang ada di sebalah kiri. Jika tidak ada pasangannya, nilai dari table kanan tetap ada dan nilai yang tidak ada di tabel kiri akan menjadi NULL.

Dengan contoh yang mirip dengan sebelumnya, inilah contoh RIGHT JOIN menggunakan perintah SQL berikut ini,

SELECT user.name, order.total
FROM order
RIGHT JOIN user
ON user.id = order.user_id;

Perintah SQL di atas, akan memunculkan seluruh data dari tabel user. Namun, hanya beberapa data yang memenuhi syarat dari tabel order yang muncul. Berikut ini adalah hasil dari perintah SQL di atas.

name    | total    |
--------+----------+
Alam    | 50000    |
Alam    | 76000    |
Budi    | 10000    |
Kris    | 500      |
NULL    | 99999    |

Berikut gambarannya pada diagram Venn.

Right Join di SQL

 

FULL JOIN

Perintah FULL JOIN atau FULL OUTER JOIN akan mengambil semua data dari kedua tabel. Perintah ini akan mencoba menggabungkan kedua data sesuai dengan syarat. Jika tidak ada pasangannya, nilai akan dijadikan NULL.

Contoh penggunaan FULL JOIN menggunakan perintah SQL dapat dilihat di bawah ini,

SELECT user.name, order.total
FROM order
FULL OUTER JOIN user
ON user.id = order.user_id;

Perintah SQL di atas, akan memunculkan seluruh data dari tabel user. Namun, hanya beberapa data yang memenuhi syarat dari tabel order yang muncul. Berikut ini adalah hasil dari perintah SQL di atas.

name    | total    |
--------+----------+
Anto    | NULL     |
Alam    | 50000    |
Alam    | 76000    |
Budi    | 10000    |
Kris    | 500      |
NULL    | 99999    |

Berikut gambarannya pada diagram Venn.

Full Join di SQL

 

 

Rangkuman

Berikut adalah diagram Venn untuk keempat jenis JOIN di atas.

Inner Join, Full Outer Join, Left Join, dan Right Join di SQL


Bagikan di


Kolom Diskusi

Sedang memuat...