Jumat, 24 September 2010

Tentang inner join, left join, right join, cross join, full join


Mari sekarang kita mempelajari tentang Inner join, Left Join, Righ Join, Cross Join dan Full Join. Saya mengambil kasus pada sql server 2000. Berikut data yang diberikan seperti pada gambar di atas.

Contoh script inner join :
select d.area_id, d.nama_area, d.luas_area, p.penduduk_id, p.nama_penduduk
from cpenduduk p
inner join
carea d on p.area_id = d.area_id

atau

select d.area_id, d.nama_area, d.luas_area, p.penduduk_id, p.nama_penduduk
from cpenduduk p, carea d
where p.area_id = d.area_id

Contoh script left join(left outer join)
select d.Area_id, d.nama_area, d.luas_area, p.penduduk_id, p.nama_penduduk from
cpenduduk p
left outer join carea d on d.area_id=p.area_id

Penjelasan : Operasi left join akan menampilkan semua isi tabel sisi kiri, walaupun data di pasangan joinnya yang disisi kanan nilainya tidak sama ataupun berisi null.

Contoh script right join(right outer join)
select d.Area_id, d.nama_area, d.luas_area, p.penduduk_id, p.nama_penduduk from
cpenduduk p
right outer join carea d on d.area_id=p.area_id

Penjelasan : Operasi right join akan menampilkan semua isi tabel sisi kanan, walaupun data di pasangan joinnya yang di sisi kiri nilainya tidak sama ataupun berisi null.


Contoh script cross join
select d.area_id, d.nama_area, d.luas_area, p.penduduk_id, p.nama_penduduk
from cpenduduk p
cross join
carea d

Penjelasan : Operasi cross join akan menampilkan semua isi tabel sisi sebelah kiri akan memiliki pasangan semua data sisi sebelah kanan. Banyaknya record cross join = jumlah record tabel pertama X jumlah record tabel kedua.


Contoh script Full join
select d.area_id, d.nama_area, d.luas_area, p.penduduk_id, p.nama_penduduk
from cpenduduk p
full join
carea d on p.area_id = d.area_id

Penjelasan : Operasi full join akan menampilkan semua isi tabel sisi kiri, walaupun data di pasangan joinnya yang disisi kanan nilainya null dan sebaliknya.


Begitulah contoh-contoh tentang inner join, left join, right join, cross join, dan full join. Sumber diambil dari beberapa artikel di internet.