SQL LEFT JOIN


Sebelum membahas LEFT JOIN, ada baiknya kita memahami terlebih dahulu apa yang dimaksud dengan JOIN pada SQL. JOIN merupakan kata dari Bahasa Inggris yang berarti ikut serta/menghubungkan. JOIN pada SQL berarti menghubungkan tabel yang satu dengan tabel lainnya yang saling berhubungan atau berelasi agar bisa menampilkan beberapa data dari tabel yang berbeda dengan satu perintah (query).

Terdapat beberapa jenis JOIN yang terdapat pada SQL diantaranya: Inner Join, Left Join, Right Join, Outer Join dan lainnya, selengkapnya silahkan lihat disini.
Pada postingan kali ini Saya tidak akan membahas semuanya, melainkan hanya LEFT JOIN. Dikutip dari dev.mysql.com, LEFT JOIN merupakan teknik menggabungkan beberapa tabel pada SQL dengan membuat sebuah parameter dari tabel sebelah kiri, jadi jika ada data atau record yang tidak berelasi (kosong) maka akan berisi NULL di sebelah kanan.
Untuk lebih jelasnya, mari kita lihat contoh di bawah ini:

Tabel personal_info:
id nama usia username
A1 Iky 15 @iky
A2 Alaen 12 @alaen
A3 Baims 10 @baims
Tabel hobby:
id username hobby
A3 @baims membaca
A2 @alaen menulis
A1 @iky menghitung
Tabel pekerjaan:
id perusahaan posisi
A2 PT. ABC frontend developer
A3 PT. XYZ backend developer
A1 PT. WADAGIZIG full stack developer

Dapat kita lihat ketiga tabel diatas mempunyai identifier yang sama yaitu id. Sekarang kita akan coba merelasikan tabel pertama dan tabel kedua.
SELECT personal_info.id, personal_info.nama, personal_info.usia, personal_info.username, hobby.hobby
FROM personal_info
LEFT JOIN hobby ON personal_info.id=hobby.id
ORDER BY personal_info.id ASC;
Hasilnya:
SQL LEFT JOIN

Sekarang kita akan mencoba menambahkan data pada tabel personal info.
INSERT INTO `personal_info` (`id`, `nama`, `usia`, `username`) VALUES
('A4', 'Gorgom', 17, '@gorgom');
Eksekusi kembali query sebelumnya, maka hasilnya adalah sebagai berikut.

SQL LEFT JOIN

Dapat kita lihat pada nama Gorgom hobby bernilai NULL, karena tidak adanya relasi data yang ditemukan pada tabel hobby. Sudah cukup jelas bukan?
Jika sudah, kita akan melakukan LEFT JOIN dari ke-tiga tabel diatas. Silahkan salin dan eksekusi query berikut ini.
SELECT personal_info.id, personal_info.nama, personal_info.usia, personal_info.username, hobby.hobby, pekerjaan.perusahaan, pekerjaan.posisi
FROM personal_info
LEFT JOIN hobby ON personal_info.id=hobby.id
LEFT JOIN pekerjaan ON personal_info.id=pekerjaan.id
ORDER BY personal_info.id ASC;
Hasilnya:
SQL LEFT JOIN

Demikian-lah postingan kali ini mengenai SQL LEFT JOIN. Perlu diketahui untuk identifier ini tak mesti satu saja, misalnya tak mesti hanya "id" saja, yang penting ada nilai yang sama diantara tabel-tabel tersebut. Misalnya seperti ini.

LEFT JOIN hobby ON personal_info.id=hobby.id
LEFT JOIN pekerjaan ON personal.info.anu=pekerjaan.anu

No comments:

Post a Comment