Menggabungkan Data dengan Inner Join, Left Join & Right Join
Sebelumnya kita telah membahas perintah dasar yang menjadi pintu gerbang kita kedepannya dalam mempelajari bahasa SQL. Untuk teman-teman yang belum mengunjungi artikelnya bisa klik disini. Artikel ini adalah lanjutan dari artikel sebelumnya yang akan membahas mengenai penggabungan 2 atau lebih tabel dalam satu basis data.
Sebagaimana kita tahu, pemrograman tidak akan terlepas dengan data dan data itu tidak hanya disimpan dalam satu tabel saja. Bisa jadi saling berkaitan dengan tabel lainnya yang mana dalam hal untuk mengambil data tersebut kita akan mengakses tabel lain dan tabel lain akan mengakses tabel lain juga. Begitu rumitnya apabila diceritakan disini. Kita coba menggunakan contoh sederhana seperti ini.
Dalam 1 basis data terdapat 3 tabel yang masing-masing diberi nama tbl_provinsi , tbl_kabupaten dan tbl_kecamatan yang tentunya saling berkaitan. Jika kita memilih Provinsi Banten misalnya, maka akan mengambil beberapa kabupaten dari tbl_kabupaten yang memiliki keterikatan dengan Provinsi Banten tersebut. Lantas bagaimana cara kita mengambil data di tbl_kabupaten tersebut ? Solusinya dengan menggunakan JOIN atau metode penggabungan data dengan menggunakan pemicu / acuan yang sama.
Pada gambar di atas kita telah memiliki 3 buah nama provinsi. Berikutnya di tabel lainnya (tbl_kabupaten) kita telah memiliki 8 buah nama kabupaten yang sudah di-maping berdasarkan field provinsi_id yang diperoleh dari id dari tbl_provinsi.
Inner Join
Selanjutnya kita akan lakukan penggabungan dengan metode inner join untuk mendapatkan hasilnya. Secara sederhana menggunakan rumus sebagai berikut.
SELECT * FROM (nama_tabel_a)
INNER JOIN (nama_tabel_b) ON (nama_tabel_a).field_acuan = (nama_tabel_b).field_acuan
Kita langsung saja ke contoh seperti pada 2 gambar di atas. Kita akan menggabungkan kedua tabel tersebut dengan acuan field provinsi_id pada tabel tbl_kabupaten dan field id pada tabel tbl_provinsi sehingga akan menjadi seperti berikut ini.
Left Join
Lantas bagaimana dengan left join ? Secara sederhana sama saja, hanya saja semua data yang pada tabel tbl_provinsi akan terpanggil semua tanpa terkecuali dan apabila tidak ada hasil yang sesuai dari tabel yang di-join-kan maka akan bernilai NULL seperti pada gambar di bawah ini.
Hasilnya akan ada nilai NULL di Provinsi Jawa Tengah karena tidak ada sama sekali kabupaten untuk Provinsi Jawa Tengah yang didaftarkan pada tbl_kabupaten sehingga tetap terpanggil namun dengan nilai nama_kabupaten NULL.
Right Join
Jika dengan case yang sama berarti semua kabupaten akan ditampilkan dan apabila tidak ada keterkaitan dengan provinsi, maka nama_provinsi dan id akan bernilai NULL seperti pada gambar di bawah ini.
Kab. Bayuwangi belum terdaftar karena provinsi_id = 0 sedangkan tidak ada provinsi (di tbl_provinsi) yang memiliki id = 0 sehingga akan bernilai NULL apabila ditampilkan dengan right join.
Mungkin itu saja yang dapat dibagikan dalam kesempatan ini. Semoga bermanfaat dan ayo dukung menulis artikel Bahasa Indonesia yang membahas mengenai pemrograman. Kita perkaya literatur Bahasa Indonesia untuk memudahkan teman-teman lainnya dalam mempelajari hal baru. Sekian dan terima kasih telah berkunjung.