JOIN
1. NATURAL JOIN
Jika diperhatikan, penulisan query
menggunakan SELECT untuk menampilkan data yang berrelasi menggunakan klausa
WHERE memerlukan banyak energi. Query yang dituliskan panjang sehingga
kemungkinan kesalahan dalam penulisan query pun semakin besar. Sebagai contoh
perhatikan query berikut yang menggunakan klausa WHERE:
Sekarang Anda dapat membuat tampilan yang
sama dengan query yang lebih singkat, yaitu menggunakan NATURAL JOIN. Seperti
yang ditunjukkan pada gambar berikut:
Untuk membuktikan kondisi tersebut, di
sini akan diberikan tambahan tabel yaitu tabel admin. Dimana tabel admin
berrelasi dengan tabel lainnya dalam hal pengelolaan sehingga database memiliki
tabel yang mencatat history pengelolaan data. Lebih jelasnya digambarkan pada
ERD berikut:
Perhatikan
pada tabel nota_pembelian PK nya berubah menjadi no_np (silakan diubah
dengan menggunakan ALTER). Selain itu terdapat juga tambahan entitas yang
lain, seperti admin, gudang. Berikut akan ditunjukkan pembuatan tabel petugas.
Sedangkan
untuk tabel lainnya hanya akan dicontohkan pembuatan tabel gudang saja. Silakan
tabel lainnya juga dibuat dengan cara yang sama.
Kemudian
isikan tabel admin dan tabel gudang yang telah dibuat tadi dengan data sebagai
berikut (tabel lainnya silakan diisi sendiri):
2. LEFT JOIN dan RIGHT JOIN
Left Join akan menampilkan semua record
dari tabel sebelah kiri, dan record dari tabel sebelah kanan yang cocok.
Hasilnya akan NULL untuk bagian kanan jika tidak ada kecocokan. Misal diminta
untuk ditampilkan tabel kelola_pengarang yang menampilkan juga no HP admin yang
mencatat. Query yang tepat jika menggunakan left join adalah sebagai berikut:
Akan tetapi jika posisi kedua tabel yang
berhubungan diubah, maka tampilan datanya pun akan memiliki arti yang lain.
Yaitu menampilkan pekerjaan setiap admin dalam mengelola data.
Right
join adalah join yang serupa dengan left join, hanya saja posisi tabel yang
kanan akan ditampilkan semua record nya. Sedangkan tabel yang kiri hanya record
yang bersesuaian saja.
3. INNER JOIN
Versi aman dari left join maupun right
join adalah inner join. Inner join tidak mementingkan posisi tabel pada query
dan fungsinya sama dengan klausa where. Misalkan diperlukan tampilan dari
pengelolaan pengarang, dimana menampilkan nama admin dan nama konsumen yang
dikelola, query nya adalah sebagai berikut:
Tidak ada komentar:
Posting Komentar