Halo semuanya, apa kabar? Semoga sehat selalu, Amin.

Kali ini kita akan belajar tentang perbedaan perintah JOIN di SQL yaitu LEFT JOIN, RIGHT JOIN dan INNER JOIN. Fungsi JOIN digunakan untuk menampilkan data pada tabel yang saling berhubungan atau be-relasi. Artinya kita dapat menampilkan data dalam beberapa tabel hanya dengan satu kali perintah.

Secara konsep dan syntax query seperti gambar dibawah ini.

Perintah diatas adalah join yang menggunakan alias. Jika teman-teman sudah ada gambaran, sekarang saatnya kita praktek agar lebih paham implementasi real-nya.

Pertama kita akan membuat database di phpMyAdmin, dengan nama db_daerah. Kemudian kita buat 2 tabel :

tb_kota

tb_provinsi

(Nama field yang berelasi antara dua tabel diatas tidak harus sama)

Kemudian masuk ke menu SQL di phpmyadmin untuk menulis perintah SQL yang akan menampilkan data-data dalam 2 tabel tersebut.

Pertama kita akan menggunakan INNER JOIN, seperti ini query-nya (kita menggunakan tanpa alias)

SELECT *
FROM tb_kota
INNER JOIN tb_provinsi
ON 
tb_kota.id_provinsi = tb_provinsi.id_provinsi;

Perintah ON kota.id_propinsi = propinsi.id, berarti akan menampilkan data-data yang mempunyai nilai sama antara id_provinsi pada table tb_kota dan id_provinsi pada table tb_provinsi. Yang artinya data tersebut berelasi.

Disini terlihat hanya data-data yang mempunyai nilai sama antara id_provinsi pada table tb_kota dan id_provinsi pada table tb_provinsi yang tampil.

Jika kita custom field yang akan ditampilkan hanya nama_kota dan nama_provinsi saja, maka seperti ini

SELECT nama_kota, nama_provinsi
FROM tb_kota
INNER JOIN tb_provinsi
ON 
tb_kota.id_provinsi = tb_provinsi.id_provinsi;

Next, sekarang kita menggunakan LEFT JOIN.

SELECT *
FROM tb_kota
LEFT JOIN tb_provinsi
ON 
tb_kota.id_provinsi = tb_provinsi.id_provinsi;

Berbeda dengan INNER JOIN, LEFT JOIN akan menampilkan data-data yang tidak berelasi. Pada table tb_provinsi (kanan), data yg tidak berelasi akan bernilai NULL.

Terakhir, kita menggunakan RIGHT JOIN.

SELECT *
FROM tb_kota
RIGHT JOIN tb_provinsi
ON 
tb_kota.id_provinsi = tb_provinsi.id_provinsi;

Sama dengan LEFT JOIN, RIGHT JOIN akan menampilkan data-data yang tidak berelasi. Namun kebalikan dari LEFT JOIN, pada table tb_kota (kiri), data yg tidak berelasi akan bernilai NULL.

Intinya ketiga JOIN diatas digunakan pada case yang berbeda-beda, tergantung kebutuhan. Biasanya yang lebih sering digunakan ialah INNER JOIN (menampilkan data yang hanya berelasi). Selain itu ada lagi yaitu FULL JOIN, coba temen-temen googling dan explore sendiri.

Semoga bermanfaat. Happy Studying, Happy Coding 🙂

  • 227
    Shares

TINGGALKAN KOMENTAR

Please enter your comment!
Please enter your name here