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 |
id | username | hobby |
---|---|---|
A3 | @baims | membaca |
A2 | @alaen | menulis |
A1 | @iky | menghitung |
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:
INSERT INTO `personal_info` (`id`, `nama`, `usia`, `username`) VALUES ('A4', 'Gorgom', 17, '@gorgom');Eksekusi kembali query sebelumnya, maka hasilnya adalah sebagai berikut.
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:
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
Silahkan gunakan nama asli dalam berkomentar. Profil unknown / anonim tidak akan di-approve! Terima kasih.