Join merupakan penggambaran relasi yang terjadi antar suatu tabel dengan tabel lainya. Perintah join dibagi menjadi 3 yaitu :
- Inner Join
- Outer Join
- Left Join
- Right Join
1. Inner Join
Dengan inner join, tabel akan digabungkan dua arah, sehingga tidak ada data yang NULL di satu sisi. Untuk menggunakan inner join, kita dapat menuliskannya dengan format seperti dibawah ini :
SELECT tabel1.*, tabel2.* FROM tabel1 INNER JOIN tabel2 ON tabel1.PK=tabel2.FK;
Contoh dibwah ini merupakan contoh perintah SQL untuk menggabungkan tabel pelanggan dan pesan:
SELECT pelanggan.id_pelanggan, pelanggan.nm_pelanggan, pesan.id_pesan, pesan.tgl_pesan FROM pelanggan INNER JOIN pesan ONpelanggan.id_pelanggan=pesan.id_pelanggan;
2. Outer Join
Dengan outer join, tabel akan digabungkan satu arah, sehingga memungkinkan ada data yang NULL (kosong) di satu sisi. Sebagai contoh, kita akan menggabungkan tabel pelanggan dan pesan dimana kita akan menampilkan daftar pelanggan yang pernah melakukan pemesanan (transaksi). Outer Join terbagi menjadi 2 (dua) yaitu LEFT JOIN dan RIGHT.
3. Left Join
Contoh dibwah ini merupakan contoh perintah SQL untuk menggabungkan tabel pelanggan dan pesan:SELECT tabel1.*, tabel2.*FROM tabel1 LEFT JOIN tabel2ON tabel1.PK=tabel2.FK;
SELECT pelanggan.id_pelanggan, pelanggan.nm_pelanggan,pesan.id_pesan, pesan.tgl_pesanFROM pelanggan LEFT JOIN pesanON pelanggan.id_pelanggan=pesan.id_pelanggan;
Berbeda dengan hasil sebelumnya (inner join), penggunaan left join akan menampilkan juga data pelanggan dengan id P0003, walaupun pelanggan tersebut belum pernah bertransaksi. Dan pada kolom id_pesan dan tgl_pesan untuk pelanggan P0003 isinya NULL, artinya di tabel kanan (pesan) pelanggan tersebut tidak ada.
4. Right Join
Contoh dibwah ini merupakan contoh perintah SQL untuk menggabungkan tabel pelanggan dan pesan:SELECT tabel1.*, tabel2.*FROM tabel1 RIGHT JOIN tabel2ON tabel1.PK=tabel2.FK;
SELECT pelanggan.id_pelanggan, pelanggan.nm_pelanggan, pesan.id_pesan, pesan.tgl_pesan FROM pelanggan RIGHT JOIN pesanON pelanggan.id_pelanggan=pesan.id_pelanggan;
Dengan right join, tabel yang menjadi acuan adalah tabel sebelah kanan (tabel pesan), jadi semua isi tabel pesan akan ditampilkan. Jika data pelanggan tidak ada di tabel pelanggan, maka isi tabel pesan tetap ditampilkan.
terima kasih.
BalasHapus