Selamat Tahun Baru 2018 Masehi. Dengan bertambahnya tahun, semoga kita menjadi insan yang lebih baik.

Tuesday, 2 January 2018


Adakalanya, ketika melakukan query dengan SELECT, kita ingin menampilkan data dari dua tabel atau lebih yang saling berhubungan. Dengan kata lain, data dari dua tabel, kita tampilkan menjadi satu tampilan tabel. Dengan SELECT dan WHERE, kita bisa saja melakukannya namun bisa jadi dalam kasus tertentu akan menjadi kurang efektif.

Nah, MySQL sudah menyertakan fasilitas JOIN untuk kebutuhan tersebut. Atribut JOIN bisa berupa “inner join” atau “outer join”. “outer join” sendiri terbagi atas “right join” dan “left join”. Untuk lebih jelas, mari kita ke contoh penggunaannya. Sebagai contoh, di sini, kami menggunakan database penilaian siswa dengan tool MySQL Workbench. Tabel yang digunakan adalah tabel guru dan pelajaran.




a. Inner Join
Inner join akan menggabungkan tabel secara dua arah. Artinya, hanya data yang saling berhubungan dari dua tabel yang ditampilkan sehingga tidak ada data NULL. Misalkan akan ditampilkan data tabel guru dan pelajaran. Maka -hanya guru yang sudah terpasang pelajaran- dan -pelajaran yang sudah terpasang gurunya- yang akan ditampilkan. Adapun guru yang belum terpasang dengan pelajaran tidak akan ditampilkan.

Misal :
select guru.*, pelajaran.* from guru inner join pelajaran ON guru.idguru = pelajaran.guru_idguru;


Jika diperhatikan, dari hasil query di atas, ada data guru yang tidak ditampilkan yaitu guru dengan idguru ke-9 dan ke-10. Mengapa demikian ? Karena guru dengan idguru tersebut belum berhubungan dengan data yang ada di tabel pelajaran.

b. Outer Join
Outer join menggabungkan tabel secara satu arah saja sehingga dimungkinkan ada data yang NULL atau kosong. Dalam prakteknya, outer join ada dua yaitu right join dan left join.

a) Right Join

Misal :
select guru.*, pelajaran.* from guru RIGHT join pelajaran ON guru.idguru = pelajaran.guru_idguru;


Berdasarkan perintah query di atas, tabel yang menjadi acuan adalah adalah pelajaran. Jadi, seluruh isi tabel pelajaran ditampilkan dulu lalu tabel guru menyesuaikan untuk dipasangkan. Kalau pun ada data guru yang belum terpasang pelajaran maka akan muncul NULL.


b) Left Join

Misal :
select guru.*, pelajaran.* from guru LEFT join pelajaran ON guru.idguru = pelajaran.guru_idguru;

Pada contoh query di atas, yang menjadi acuan adalah tabel yang sebelah kiri dari ekspresi “guru LEFT join pelajaran” yakni tabel guru. Berarti, data guru ditampilkan sedangkan data pelajaran akan menyesuaikan. Kalau pun ada guru yang belum terpasang pelajaran maka akan berisikan NULL di pelajaran.


Sebenarnya mudah kan ? Silakan kawan mencoba query JOIN-nya. Akan lebih paham jika kita mempraktekkannya. Hal yang terpenting adalah terus belajar. Kami pun juga masih belajar. Selamat mencoba.

Categories: ,

0 comments:

Post a Comment