Pada tutorial 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 script seperti gambar dibawah ini :

Script diatas adalah join yang menggunakan alias. Jika sudah ada gambaran, sekarang saatnya kita praktek agar lebih paham implementasinya.

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 script 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 sering digunakan ialah INNER JOIN (menampilkan data yang hanya berelasi). Sebenarnya ada lagi FULL JOIN, silakan temen-temen explore sendiri.

Semoga bermanfaat. Happy studying and practicing 🙂

TINGGALKAN KOMENTAR

Please enter your comment!
Please enter your name here