Sunday, April 3, 2016

Belajar Join di MySql



Selamat malam semuanya, setelah membahas tentang DDL, DML dan SELECT, selanjutnya saya akan membahas tentang JOIN di Mysql. Sebelum kita melakukan proses join, buatlah 2 buah tabel yaitu table mahasiswa dan mahasiswa_detail seperti contoh dibawah ini :
tabel mahasiswa
nim
nama_mahasiswa
001
Ujang Doremi
002
Budi Fasola
003
Cecep Sukhoi
tabel mahasiswa_detail
nim
jenis_kelamin
tempat_lahir
001
Laki-laki
Bandung
003
Laki-laki
Cianjur
005
Perempuan
Sumedang

dari kedua tabel diatas dapat dilihat ada bahwa pada tabel mahasiswa tidak terdapat mahasiswa dengan nim 005, sedangkan pada tabel mahasiswa_detail terlihat tidak ada mahasiswa dengan nim 002. Jikalau kita melakukan join biasa pasti ada data yang tidak muncul. Coba lakukan proses seperti dibawah ini :
SELECT *
FROM mahasiswa m, mahasiswa_detail md
WHERE m.nim=md.nim
maka hasilnya seperti tabel dibawah ini :
nim
nama_mahasiswa
nim
jenis_kelamain
tempat_lahir
001
Ujang Doremi
001
Laki-laki
Bandung
003
Cecep Sukhoi
003
Laki-laki
Cianjur

mengapa demikiaan ?. Hal ini dikarenakan pada query diatas ada kondisi dimana nim yang ada pada tabel mahasiswa (m.nim) itu harus sama dengan nim yang ada pada tabel mahasiswa_detail (md.nim), maka dari itu data yang muncul hanya 2 data saja karena nim yang sama diantara kedua tabel tersebut hanya ada 2 saja. Lalu bagaimana jika kita ingin menampilkan data yang ada di mahasiswa tapi tidak di mahasiswa_detail ataupun sebaliknya ?. Kita dapat menggunakan LEFT JOIN atau RIGHT JOIN seperti contoh di bawah ini :
SELECT *
FROM mahasiswa m LEFT JOIN mahasiswa_detail md
ON m.nim=md.nim
hasilnya seperti tabel dibawah ini :
nim
nama_mahasiswa
nim
jenis_kelamin
tempat_lahir
001
Ujang Doremi
001
Laki-laki
Bandung
002
Budi Fasola
NULL
NULL
NULL
003
Cecep Sukhoi
003
Laki-laki
Cianjur

mengapa demikian ?. Karena Left Join ini digunakan untuk menampil semua data pada tabel yang di sebelah kiri, maka dari itu tabel mahasiswa yang pada sintax diatas berada di sebelah kiri datanya tampil semua.
SELECT *
FROM mahasiswa m RIGHT JOIN mahasiswa_detail md
ON m.nim=md.nim
hasilnya seperti tabel dibawah ini :
nim
nama_mahasiswa
nim
jenis_kelamin
tempat_lahir
001
Ujang Doremi
001
Laki-laki
Bandung
003
Cecep Sukhoi
003
Laki-laki
Cianjur
NULL
NULL
005
Perempuan
Sumedang

mengapa demikian ?. Karena Right Join ini digunakan untuk menampil semua data pada tabel yang di sebelah kanan, maka dari itu tabel mahasiswa_detail yang pada sintax diatas berada di sebelah kanan datanya tampil semua.
Sekian dulu pembahasan tetang JOIN nya, nantikan tutorial-tutorial berikutnya.

0 komentar:

Post a Comment