SQL join adalah sintak untuk menggabungkan dua tabel atau lebih yang memiliki relasi masing masing tabel.Dengan join kita bisa mengeluarkan column value yang ingin kita keluarkan dari table yang memiliki relasi.Join terdiri dari INNER JOIN,LEFT JOIN,RIGHT JOIN, dan FULL JOIN. perbedaannya yaitu:
- INNER JOIN: return records yang cocok dari kedua tabel
- LEFT JOIN: return semua records dari table kiri dan records yang cocok dari kedua tabel
- RIGHT JOIN: return semua records dari table kanan dan records yang cocok dari kedua tabel
sintak sqlnya yaitu:
- INNER JOIN: SELECT nama_kolum FROM tabel1 INNER JOIN Tabel2 on tabel1.nama_kolum = tabel2.nama_kolum;
- LEFT JOIN: SELECT nama_kolum FROM tabel1 LEFT JOIN Tabel2 on tabel1.nama_kolum = tabel2.nama_kolum;
- RIGHT JOIN: SELECT nama_kolum FROM tabel1 RIGHT JOIN Tabel2 on tabel1.nama_kolum = tabel2.nama_kolum;
SQL join membutuhkan relasi antar tabel,baik one to many atau one to one maupun many to many.Disini saya tidak akan menjelaskan lagi relasi antar tabel,karena penulis berasumsi pembaca sudah memahami tentang relasi antar tabel.Tanpa banyak basa basi lagi mari mulai tutorialnya
Hal pertama yang harus dibuat adalah 2 tabel dengan relasi,sebagai contoh saya membuat 2 tabel terdiri dari: tabel siswa dan tabel tabungan.
Isi tabel siswa sebagai berikut:
dan tabel tabungan berisi seperti berikut:
dengan foreign key di tabel siswa yaitu di field id_siswa.
Pertama kita akan mengeluarkan nama siswa dan jumlah tabungan,menggunakan inner join maka sintaknya seperti berikut:
SELECT nama_siswa, jumlah_tabungan FROM siswa INNER JOIN tabungan ON siswa.id = tabungan.id_siswa;
Jika right join maka sintaknya seperti berikut:
SELECT nama_siswa, kelas, jumlah_tabungan FROM siswa RIGHT JOIN tabungan on siswa.id = tabungan.id_siswa;
Bisa dilihat hasil dari ketiganya sama,Join tabel juga memiliki keuntungan yaitu:
- Tereksekusi lebih cepat
- Waktu pengambilan query join hampir selalu lebih cepat dari pada subquery
- Memaksimalkan kalkulasi pada database,yang berarti anda bisa memanfaatkan kemampuan database lebih baik untuk search through,filter,sort, dll.