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