Holla! kali ini, mimin mau berbagi tentang salah satu konsep penting dalam database yaitu left join. Mungkin bagi sebagian dari kalian yang masih awam dengan istilah-istilah teknis di bidang IT, left join bisa terdengar cukup menakutkan atau sulit dipahami.
Tapi jangan khawatir, mimin akan mencoba menjelaskan konsep ini dengan bahasa yang lebih santai dan mudah dipahami. Ikuzo!
Pengertian Left Join
Left join adalah jenis join dalam pengolahan data di database yang digunakan untuk menggabungkan informasi dari dua tabel yang berbeda. Dalam konsep left join, semua data dari tabel kiri akan ditampilkan, sedangkan data dari tabel kanan yang sesuai juga akan disertakan.
Dalam SQL (Structured Query Language), left join dapat dilakukan dengan menggunakan perintah “LEFT JOIN” atau “LEFT OUTER JOIN”. Dalam hasil left join, semua baris dari tabel kiri akan tetap ditampilkan, bahkan jika tidak ada data yang sesuai dalam tabel kanan. Jika ada data yang sesuai dalam tabel kanan, data tersebut akan ditampilkan bersama dengan data dari tabel kiri.
Left join sangat berguna dalam pengolahan data di database, terutama ketika kita ingin menggabungkan informasi dari tabel-tabel yang memiliki relasi antara satu sama lain. Misalnya, kita dapat menggunakan left join untuk menggabungkan informasi dari tabel “Pembeli” dan tabel “Pesanan” dalam database toko online, di mana tabel “Pembeli” berisi informasi tentang semua pembeli yang melakukan pesanan, dan tabel “Pesanan” berisi informasi tentang pesanan yang telah dibuat.
Dengan menggunakan left join, kita dapat menampilkan semua pembeli, bahkan jika mereka belum melakukan pesanan, dan menampilkan informasi pesanan dari pembeli yang telah melakukan pesanan.
Kapan menggunakan Left Join?
Ketika bekerja dengan database, sering kali kita perlu menggabungkan informasi dari dua tabel atau lebih yang saling terkait. Salah satu cara untuk menggabungkan tabel tersebut adalah dengan menggunakan join. Left join adalah salah satu jenis join yang paling umum digunakan. Namun, kapan sebaiknya kita menggunakan left join?
Pertama, kita perlu memastikan bahwa tabel yang akan digabungkan memiliki relasi atau hubungan antara satu sama lain. Misalnya, kita memiliki tabel Pembeli
dan tabel Pesanan
dalam database toko online. Tabel Pembeli
memiliki kolom id_pembeli
, sementara tabel Pesanan
memiliki kolom id_pembeli
yang mengacu pada pembeli yang melakukan pesanan. Dalam hal ini, kedua tabel memiliki relasi atau hubungan antara satu sama lain melalui kolom id_pembeli
.
Kedua, kita harus mempertimbangkan tujuan dari penggabungan data. Jika kita ingin menampilkan semua data dari tabel kiri, bahkan jika tidak ada data yang sesuai dalam tabel kanan, maka left join adalah pilihan yang tepat. Misalnya, jika kita ingin menampilkan semua pembeli dalam tabel Pembeli
, bahkan jika mereka belum pernah melakukan pesanan dalam tabel Pesanan
, maka left join akan menampilkan semua pembeli dalam tabel Pembeli
, bahkan jika tidak ada data yang sesuai dalam tabel Pesanan
.
Namun, jika tujuan kita adalah untuk menampilkan hanya data yang sesuai antara kedua tabel, maka left join mungkin tidak tepat. Dalam hal ini, inner join mungkin lebih tepat, di mana hanya data yang memiliki nilai yang sesuai di kedua tabel yang akan ditampilkan.
Selain itu, kita juga harus mempertimbangkan jumlah data yang akan digabungkan. Jika jumlah data dalam tabel yang akan digabungkan sangat besar, left join dapat memakan waktu yang lama dan mengurangi performa query. Dalam hal ini, kita mungkin perlu mempertimbangkan cara lain untuk menggabungkan tabel, seperti menggunakan subquery atau temporary table.
Left join adalah pilihan yang tepat ketika kita ingin menampilkan semua data dari tabel kiri, bahkan jika tidak ada data yang sesuai dalam tabel kanan. Namun, kita harus mempertimbangkan relasi antara kedua tabel, tujuan penggabungan data, dan jumlah data yang akan digabungkan sebelum memutuskan menggunakan left join.
Contoh penggunaan Left Join
Di sini kita memiliki dua tabel yaitu Karyawan
dan Proyek
, di mana tabel Karyawan
berisi informasi tentang semua karyawan dan tabel Proyek
berisi informasi tentang proyek-proyek yang sedang berjalan di perusahaan tersebut. Kedua tabel memiliki kolom id_karyawan
sebagai relasi antara kedua tabel.
Berikut adalah contoh penggunaan left join untuk menggabungkan informasi dari tabel Karyawan
dan tabel Proyek
:
SELECT karyawan.nama, karyawan.jabatan, proyek.nama_proyek
FROM karyawan
LEFT JOIN proyek ON karyawan.id_karyawan = proyek.id_karyawan;
Berikut adalah penjelasan mengenai Query di atas:
- Pada baris pertama, kita menentukan kolom-kolom yang akan ditampilkan dalam hasil query, yaitu kolom
nama
danjabatan
dari tabelKaryawan
dan kolomnama_proyek
dari tabelProyek
. - Pada baris kedua, kita menentukan tabel yang akan diambil datanya, yaitu tabel
Karyawan
. - Pada baris ketiga, kita menggunakan left join untuk menggabungkan data dari tabel
Karyawan
dan tabelProyek
. Kita menggunakanLEFT JOIN
karena kita ingin menampilkan semua karyawan dalam tabelKaryawan
, bahkan jika mereka belum terlibat dalam proyek apa pun dalam tabelProyek
. Kita juga menentukan relasi antara kedua tabel menggunakan kolomid_karyawan
. - Pada baris keempat, kita menentukan nama tabel yang akan digabungkan, yaitu tabel
Proyek
. - Pada baris kelima, kita menentukan kondisi yang akan digunakan untuk menggabungkan kedua tabel, yaitu bahwa nilai kolom
id_karyawan
pada tabelKaryawan
harus sama dengan nilai kolomid_karyawan
pada tabelProyek
.
Hasil dari query di atas adalah informasi tentang semua karyawan dalam tabel Karyawan
, beserta nama proyek yang mereka terlibat (jika ada). Jika karyawan tersebut belum terlibat dalam proyek apa pun, nilai kolom nama_proyek
akan null. Contoh hasil query dapat dilihat di bawah ini:
nama | jabatan | nama_proyek |
---|---|---|
Andi Ay | Manager | Website Redesign |
Fahmi Maulidina | Developer | Website Redesign |
Ibnu Nero | Manager | NULL |
Wawan | Developer | NULL |
Mike Chan | Developer | Mobile App |
Dalam hasil output tersebut, kita dapat melihat informasi tentang semua karyawan yang terdaftar dalam tabel Karyawan
. Kolom nama
menampilkan nama karyawan, sedangkan kolom jabatan
menampilkan jabatan karyawan.
Kolom nama_proyek
menampilkan nama proyek yang sedang ditangani oleh karyawan tersebut. Dalam hal ini, kita dapat melihat bahwa Andi Ay dan Fahmi Maulidina sedang bekerja pada proyek Website Redesign
sedangkan Ibnu Nero dan Wawan tidak sedang bekerja pada proyek manapun. Mike Chan sedang bekerja pada proyek Mobile App
.
Perlu diperhatikan bahwa Ibnu Nero dan Wawan memiliki nilai NULL pada kolom nama_proyek
karena mereka tidak sedang bekerja pada proyek manapun dan tidak memiliki id proyek yang terdaftar di tabel Proyek
. Ini adalah contoh bagaimana LEFT JOIN dapat membantu kita mengambil informasi dari tabel utama bahkan ketika tidak ada pasangan nilai di tabel kedua.