Belajar INNER JOIN, LEFT JOIN dan RIGHT JOIN pada SQL
![belajar-join-sql](https://yukcoding.id/wp-content/uploads/2018/01/belajar-join-sql-640x504.jpg)
Halo semuanya, apa kabar? Semoga sehat selalu, Amin.
Secara konsep dan syntax query seperti gambar dibawah ini.
![](https://1.bp.blogspot.com/-xBmbZYvwan8/WlfgrC7nfUI/AAAAAAAABKc/ZCpBzJl07AsleVr9LvCwG-YNIiGQ3lr5ACLcBGAs/s1600/join-sql.jpg)
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
![](https://4.bp.blogspot.com/-YAu24KBqEp8/WlfoSs1uwZI/AAAAAAAABLo/tYnvPy80v4saGU-B3z_yoAu40CyqBbppQCLcBGAs/s1600/tabel-kota.png)
tb_provinsi
![](https://3.bp.blogspot.com/-21q_uwO2H9o/WlfoSqyXW8I/AAAAAAAABLk/H0QTu4JVwFccyTg0FBv_47wYxmddULCQACEwYBhgL/s1600/tabel-provinsi.png)
(Nama field yang berelasi antara dua tabel diatas tidak harus sama)
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.
![](https://4.bp.blogspot.com/-0a4ZGdxofm8/WlfnjQ-xh2I/AAAAAAAABLI/Lbub9tLufzMjaZdwdpV8rTju8AqX3QB8wCEwYBhgL/s1600/inner-join.png)
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;
![](https://3.bp.blogspot.com/-tdu-dNviCzk/WlfnjUL352I/AAAAAAAABLM/prLVokmtEUsYVS3KqrYMaPbHVQhYzCKqACEwYBhgL/s1600/inner-join-custom-field.png)
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.
![](https://2.bp.blogspot.com/-VMM-gLU4ERM/WlfnjfXwPDI/AAAAAAAABLQ/PO5G5Cn96u8cxKC6WCdao7JC7ojmNes5QCEwYBhgL/s1600/left-join.png)
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.
![](https://2.bp.blogspot.com/-skD-unMMXow/WlfnkC1gVcI/AAAAAAAABLU/f0L_Yjoft9UMUsgNvcmQgn5fBk3wvv3NwCEwYBhgL/s1600/right-join.png)
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.