Tutorial mengenai JOIN dalam SQL untuk pemula:
Tutorial SQL JOIN untuk Pemula
Daftar Isi
- Pengantar Tentang SQL JOIN
- Jenis-Jenis JOIN
- Tabel Contoh dan Data
- Contoh Penggunaan JOIN
- Kesimpulan
1. Pengantar Tentang SQL JOIN
Dalam database relasional, seringkali kita memiliki data yang tersebar di berbagai tabel. Namun, dalam banyak situasi, kita perlu menggabungkan data dari lebih dari satu tabel untuk mendapatkan informasi yang lengkap. Inilah di mana JOIN
berperan.
2. Jenis-Jenis JOIN
Ada beberapa jenis JOIN dalam SQL:
- INNER JOIN: Menggabungkan baris dari dua tabel berdasarkan kolom yang terkait. Hanya mengembalikan baris yang cocok dari kedua tabel.
- LEFT JOIN (atau LEFT OUTER JOIN): Mengembalikan semua baris dari tabel kiri, dan baris yang cocok dari tabel kanan. Jika tidak ada kecocokan, hasil di sisi kanan adalah NULL.
- RIGHT JOIN (atau RIGHT OUTER JOIN): Mirip dengan LEFT JOIN, tetapi mengembalikan semua baris dari tabel kanan.
- FULL JOIN (atau FULL OUTER JOIN): Mengembalikan baris saat ada kecocokan di salah satu tabel.
- CROSS JOIN: Menggabungkan setiap baris dari tabel pertama dengan setiap baris dari tabel kedua.
- SELF JOIN: Menggabungkan tabel dengan dirinya sendiri.
3. Tabel Contoh dan Data
Misalkan kita memiliki dua tabel: Siswa
dan Pendaftaran
.
Tabel Siswa
siswa_id | nama_siswa |
---|---|
1 | Alice |
2 | Bob |
3 | Charlie |
4 | David |
Tabel Pendaftaran
pendaftaran_id | siswa_id | mata_pelajaran |
---|---|---|
1 | 1 | Matematika |
2 | 2 | IPA |
3 | 3 | Sastra |
4 | 5 | Sejarah |
4. Contoh Penggunaan JOIN
Ayo lihat contoh penggunaan JOIN pada tabel di atas:
- INNER JOIN
SELECT Siswa.nama_siswa, Pendaftaran.mata_pelajaran
FROM Siswa
INNER JOIN Pendaftaran ON Siswa.siswa_id = Pendaftaran.siswa_id;
Hasil:
nama_siswa | mata_pelajaran |
---|---|
Alice | Matematika |
Bob | IPA |
Charlie | Sastra |
- LEFT JOIN
SELECT Siswa.nama_siswa, Pendaftaran.mata_pelajaran
FROM Siswa
LEFT JOIN Pendaftaran ON Siswa.siswa_id = Pendaftaran.siswa_id;
Hasil:
nama_siswa | mata_pelajaran |
---|---|
Alice | Matematika |
Bob | IPA |
Charlie | Sastra |
David | NULL |
- RIGHT JOIN Mengembalikan semua baris dari tabel kanan, dan baris yang cocok dari tabel kiri. Jika tidak ada kecocokan di sisi kiri, hasilnya adalah NULL.
SELECT Siswa.nama_siswa, Pendaftaran.mata_pelajaran
FROM Siswa
RIGHT JOIN Pendaftaran ON Siswa.siswa_id = Pendaftaran.siswa_id;
Hasil:
nama_siswa | mata_pelajaran |
---|---|
Alice | Matematika |
Bob | IPA |
Charlie | Sastra |
NULL | Sejarah |
- FULL JOIN Mengembalikan baris saat ada kecocokan di salah satu tabel. Jika tidak ada kecocokan di salah satu sisi, hasilnya adalah NULL.
SELECT Siswa.nama_siswa, Pendaftaran.mata_pelajaran
FROM Siswa
FULL JOIN Pendaftaran ON Siswa.siswa_id = Pendaftaran.siswa_id;
Hasil:
nama_siswa | mata_pelajaran |
---|---|
Alice | Matematika |
Bob | IPA |
Charlie | Sastra |
David | NULL |
NULL | Sejarah |
- CROSS JOIN Menggabungkan setiap baris dari tabel pertama dengan setiap baris dari tabel kedua, menghasilkan produk kartesian dari tabel-tabel tersebut.
SELECT Siswa.nama_siswa, Pendaftaran.mata_pelajaran
FROM Siswa
CROSS JOIN Pendaftaran;
Hasilnya akan menggabungkan setiap siswa dengan setiap mata pelajaran, jadi jika ada 4 siswa dan 4 mata pelajaran, maka akan ada 16 kombinasi yang dihasilkan.
Tentu! Mari kita coba dengan contoh SELF JOIN
.
SELF JOIN sering digunakan pada tabel yang memiliki relasi dengan dirinya sendiri. Misalnya, kita punya tabel Karyawan
di mana setiap karyawan memiliki seorang manajer, dan manajer tersebut juga merupakan karyawan dalam tabel yang sama.
Misalkan kita memiliki tabel Karyawan
sebagai berikut:
Tabel Karyawan
karyawan_id | nama | manajer_id |
---|---|---|
1 | Anton | NULL |
2 | Budi | 1 |
3 | Charlie | 1 |
4 | Dina | 2 |
5 | Elsa | 2 |
Dalam tabel di atas, Anton adalah manajer, dan dia sendiri tidak memiliki manajer (ditandai dengan NULL
). Budi dan Charlie memiliki Anton sebagai manajer mereka, sedangkan Dina dan Elsa memiliki Budi sebagai manajer mereka.
Jika kita ingin mengetahui nama manajer untuk setiap karyawan, kita dapat menggunakan SELF JOIN:
SELECT
k1.nama AS nama_karyawan,
k2.nama AS nama_manajer
FROM
Karyawan k1
LEFT JOIN
Karyawan k2 ON k1.manajer_id = k2.karyawan_id;
Hasil:
nama_karyawan | nama_manajer |
---|---|
Anton | NULL |
Budi | Anton |
Charlie | Anton |
Dina | Budi |
Elsa | Budi |
Dengan SELF JOIN, kita dapat dengan mudah mengaitkan data dalam tabel yang sama untuk mendapatkan informasi yang relevan antara dua entitas yang berbeda dalam tabel yang sama.
5. Kesimpulan
JOIN
adalah salah satu konsep dasar namun sangat penting dalam SQL. Memahami cara kerja JOIN dan kapan harus menggunakan jenis JOIN tertentu sangat penting bagi siapa saja yang bekerja dengan database relasional. Terus praktekkan untuk menguasainya!
Semoga tutorial ini membantu Anda untuk memahami konsep JOIN dalam SQL dengan lebih baik. Selamat belajar!