Perintah SELECT Dari Banyak Tabel Dengan JOIN
Di dalam suatu RDBMS tentunya sudah menjadi suatu kewajaran jika dalam
satu database dapat terdiri dari beberapa tabel. Masing-masing tabel tersebut
berhubungan satu sama lain atau dengan kata lain memiliki relasi. Relasi antar-
tabel dapat berupa relasi 1-1, 1-M, atau M-N. Tabel pelanggan berhubungan dengan pesan, pesan dengan barang, dsb.
Pada praktisnya, terkadang kita juga memerlukan tampilan data yang tidak
hanya berasal dari 1 (satu) tabel, namun bisa dari beberapa tabel sekaligus.
menggabungkan minimal dua tabel, yaitu pelanggan dan pesan.
Untuk menggabungkan 2 (dua) atau lebih tabel, kita dapat menggunakan
bentuk perintah JOIN.
Inner Join
Dengan inner join, tabel akan digabungkan dua arah, sehingga tidak ada
data yang NULL di satu sisi.
Sebagai contoh, kita akan menggabungkan tabel pelanggan dan pesan dimana kita akan menampilkan daftar pelanggan yang
pernah melakukan pemesanan (transaksi). Isi tabel pelanggan dan pesan adalah sebagai berikut :
Tabel pelanggan (hanya ditampilkan id, nama dan email).
Tabel Pesan
1. Penggabungan dengan WHERE
Bentuk umum
SELECT tabel1.*, tabel2.* FROM tabel1, tabel2 WHERE tabel1.PK=tabel2.FK;
Berikut ini perintah SQL untuk menggabungkan tabel pelanggan dan pesan :
Keterangan :
Pada hasil perintah query di atas terlihat bahwa terdapat 5 (lima) transaksi
yang dilakukan oleh 3 (tiga) orang pelanggan. Jika kita lihat kembali isi tabel
pelanggan di atas, maka terdapat satu pelanggan yang tidak ditampilkan yaitu
yang memiliki id pelanggan P0003. Pelanggan tersebut tidak ditampilkan karena
belum pernah melakukan transaksi.
2. Penggabungan dengan INNER JOIN
Bentuk umum
SELECT tabel1.*, tabel2.* FROM tabel1 INNER JOIN tabel2 ON tabel1.PK=tabel2.FK;
Berikut ini perintah SQL untuk menggabungkan tabel pelanggan dan pesan :
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. Berikut ini
bentuk umum dan contohnya :
LEFT JOIN
Bentuk umum
SELECT tabel1.*, tabel2.* FROM tabel1 LEFT JOIN tabel2 ON tabel1.PK=tabel2.FK;
Berikut ini perintah SQL untuk menggabungkan tabel pelanggan dan pesan :
Keterangan :
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.
RIGHT JOIN
Bentuk umum
SELECT tabel1.*, tabel2.* FROM tabel1 RIGHT JOIN tabel2 ON tabel1.PK=tabel2.FK;
Berikut ini perintah SQL untuk menggabungkan tabel pelanggan dan pesan :
Keterangan :
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.
0 komentar:
Posting Komentar