03 November 2010

9.2.3 SQL Joins

SQL joins digunakan untuk query data dari dua atau lebih tabel, berdasarkan relasi antara field tertentu pada tabel-tabel tersebut.
Pada pembahasan join ini, kondisi data yang digunakan sebagai contoh adalah sebagai berikut:
Data kategori:

Data subkategori:

Data produk:


Ada tiga jenis Join, yaitu:
SQL Inner Join, baris yang dihasilkan harus ada dan cocok di kedua tabel

SELECT a.fieldtabelkiri, b.fieldtabelkanan
FROM tabelkiri a
INNER JOIN tabelkanan b
ON a.primaryfieldtabelkiri = b.foreignfieldtabelkanan

Contoh:
Menampilkan nama kategori pada display data subkategori
SELECT s.kodekategori, k.namakategori, s.kodesub, s.namasub FROM subkategori s inner join kategori k on s.kodekategori = k.kodekategori

Contoh: Menampilkan nama kategori dan nama subkategori pada display data produk
SELECT k.namakategori, s.namasub, p.kodeproduk, p.namaproduk, p.hargajual, p.stok FROM produk p inner join subkategori s on p.kodesub = s.kodesub inner join kategori k on s.kodekategori = k.kodekategori


• SQL Left Join, akan menampilkan seluruh data di tabel kiri dan hanya menampilkan data tabel kanan yang cocok dengan relasi field ke tabel kiri
SELECT a.fieldtabelkiri, b.fieldtabelkanan
FROM tabelkiri a
LEFT JOIN tabelkanan b
ON a.primaryfieldtabelkiri = b.foreignfieldtabelkanan


Contoh:
kita ingin menampilkan produk dari seluruh subkategori, walaupun subkategori tersebut tidak memiliki data produk.
SELECT p.kodesub, s.namasub, p.kodeproduk, p.namaproduk FROM subkategori s left join produk p on s.kodesub = p.kodesub


• SQL Right Join, akan menampilkan seluruh data di tabel kanan dan hanya menampilkan data tabel kiri yang cocok dengan relasi field ke tabel kanan
SELECT a.fieldtabelkiri, b.fieldtabelkanan
FROM tabelkiri a
RIGHT JOIN tabelkanan b
ON a.primaryfieldtabelkiri = b.foreignfieldtabelkanan


Pada dasarnya left join dan right join dapat menghasilkan data yang sama, perbedaannya hanya pada urutan letak tabel kiri dan tabel kanan saja.
SELECT p.kodesub, s.namasub, p.kodeproduk, p.namaproduk FROM produk p right join subkategori s on p.kodesub = s.kodesub

2 comments:

bob said...

bikin kategori
mau tanya kalau mau membuat kategori kayak yang diblog harus bikin berapa tabel and script sql nya untuk menampilkan data..mhon di blz di web saya....
matur nuwun.....

rani-irsan said...

berapa jumlah tabel tergantung keperluan, pada contoh diatas pengelompokan produk dibuat 2 level yaitu kategori dan subkategori, ditambah tabel produk itu sendiri jadi 3 tabel.
SQL untuk menampilkan data menggunakan SELECT, ini pun tergantung ingin menampilkan data apa?
Contoh menampilkan data dengan relasi antara tabel menggunakan join, saya kira sudah cukup jelas seperti yg diungkapkan di artikel diatas.