Kali ini kita akan belajar Klausa JOIN pada MySQL. Ketika kita bekerja dengan basis data yang kompleks, sering kali kita perlu menggabungkan data dari beberapa tabel untuk mendapatkan informasi yang lengkap. MySQL menyediakan klausa JOIN yang powerfull untuk melakukan tugas ini. Dalam tutorial MySQL kali ini, kami akan mencoba menjelaskan bagaimana menggunakan klausa JOIN dalam MySQL untuk menggabungkan data dari tabel-tabel yang berbeda. Kami akan menggunakan contoh tabel dari database “toko_buku” yang telah kita buat pada tutorial-tutorial sebelumnya.
Mengapa Kita Membutuhkan Klausa JOIN?
Mari kita asumsikan kita ingin menampilkan daftar buku beserta nama penulis dan nama kategori bukunya. Namun, informasi ini tersimpan dalam tiga tabel yang berbeda: Tabel “buku”, “penulis” dan “kategori_buku”. Jika tanpa JOIN, kita mungkin harus mengekstrak data dari masing-masing tabel secara terpisah dan melakukan penggabungan secara manual. Itu bisa menjadi sangat rumit dan memakan waktu yang lebih lama.
Pada tutorial sebelumnya dengan judul Tutorial MySQL Dasar: Memasukkan Data ke dalam Tabel Kategori Buku, Penulis dan Buku Pada Database Toko Buku, kami memberikan contoh memasukkan data buku dan juga menampilkannya dengan perintah SELECT * FROM buku;
hasilnya adalah data buku tampil dengan kolom id_penulis dan juga id_kategori yag berupa angka. Itulah salah satu contoh jika tanpa klausa JOIN.
Itulah alasan mengapa kita memerlukan klausa JOIN yaitu untuk menggabungkan data dari beberapa tabel dengan cara yang efisien dan efektif.
Jenis-Jenis Klausa JOIN
MySQL mendukung beberapa jenis klausa JOIN:
- INNER JOIN
INNER JOIN menggabungkan baris dari dua tabel yang memiliki nilai yang cocok dalam kedua tabel tersebut. Jika tidak ada nilai yang cocok, baris tersebut tidak akan disertakan dalam hasil.
- LEFT JOIN (atau LEFT OUTER JOIN)
LEFT JOIN menggabungkan semua baris dari tabel di sebelah kiri (tabel pertama dalam pernyataan JOIN) dan baris yang cocok dari tabel di sebelah kanan (tabel kedua dalam pernyataan JOIN). Jika tidak ada nilai yang cocok di tabel kanan, hasilnya akan tetap menampilkan semua baris dari tabel kiri dengan nilai NULL pada kolom-kolom yang berasal dari tabel kanan. - RIGHT JOIN (atau RIGHT OUTER JOIN)
RIGHT JOIN adalah kebalikan dari LEFT JOIN. Ini menggabungkan semua baris dari tabel di sebelah kanan dan baris yang cocok dari tabel di sebelah kiri. Jika tidak ada nilai yang cocok di tabel kiri, hasilnya akan tetap menampilkan semua baris dari tabel kanan dengan nilai NULL pada kolom-kolom yang berasal dari tabel kiri. - FULL JOIN (atau FULL OUTER JOIN)
FULL JOIN menggabungkan semua baris dari kedua tabel, mencocokkan baris yang cocok dari setiap tabel. Jika tidak ada nilai yang cocok, hasilnya akan menampilkan nilai NULL pada kolom-kolom yang tidak memiliki nilai cocok.
Contoh Penggunaan Klausa JOIN
Sekarang mari kita lihat contoh penggunaan klausa JOIN dalam konteks database “toko_buku” kita. Pertama, misalkan kita ingin menampilkan daftar buku beserta nama penulis dan kategori bukunya. Ini adalah contoh menggunakan INNER JOIN:
1 2 3 4 | SELECT buku.judul, penulis.nama_penulis, kategori_buku.nama_kategori FROM buku INNER JOIN penulis ON buku.id_penulis = penulis.id_penulis INNER JOIN kategori_buku ON buku.id_kategori = kategori_buku.id_kategori; |
Dalam pernyataan di atas, kita menggabungkan tabel “buku“, “penulis” dan “kategori_buku” dengan mengaitkan kolom id_penulis
dan id_kategori
dari tabel “buku” ke kolom-kolom yang sesuai dalam tabel “penulis” dan “kategori_buku”, Hasilnya adalah daftar buku yang mencakup judul buku, nama penulis, dan nama kategori buku seperti berikut ini:
Mengatasi Konflik Nama Kolom
Dalam beberapa kasus, kita mungkin memiliki kolom dengan nama yang sama di tabel yang berbeda yang akan kita gabungkan sehingga menimbulkan konfilik nama kolom. Untuk mengatasi masalah ini, kita dapat memberikan alias (nama alias) pada kolom-kolom tersebut dalam pernyataan SELECT. Misalnya seperti contoh berikut ini:
1 2 3 4 | SELECT buku.judul, penulis.nama_penulis AS penulis, kategori_buku.nama_kategori AS kategori FROM buku INNER JOIN penulis ON buku.id_penulis = penulis.id_penulis INNER JOIN kategori_buku ON buku.id_kategori = kategori_buku.id_kategori; |
Dalam contoh di atas, kami memberikan alias penulis
dan kategori
pada kolom-kolom yang sesuai, sehingga kita bisa merujuk pada lolom sebenarnya dengan nama alias tersebut dalam hasil query.
Kesimpulan Klausa JOIN Pada MySQL
Klausa JOIN pada MySQL adalah alat yang sangat berguna untuk menggabungkan data dari beberapa tabel ke dalam satu set data yang lengkap dan bermakna. Dalam tutorial ini, kami telah menjelaskan jenis-jenis JOIN yang tersedia dalam MySQL dan memberikan contoh penggunaan dalam konteks database Toko Buku kami. Dengan pemahaman yang tentang JOIN, kita akan dapat menggabungkan data dengan lebih efisien dan membuat query yang lebih baik dalam manajemen basis data.
Daftar atau list tutorial MySQL dapat anda lihat diĀ Index Tutorial MySQL: Belajar MySQL Dari Dasar.