Dalam sebuah database oracle, terdapat beberapa tabel yang sering kita gunakan untuk mengeluarkan informasi. Dalam penggabungan dua buah tabel kita bisa menggunakan fasilitas “Join”. Untuk penggabungan yang normal, join digunakan untuk menemukan nilai / informasi yang berelasi diantara keduanya. Dalam banyak kasus, hubungan ini biasanya di link dengan hubungan equal (=), dimana hubungan tersebut dilakukan antar column yang dicompare yang nantinya menghasilkan nilai, baik true atau false.
Dalam relasi ini, yang harus diingat adalah “normal join” hanya mengeluarkan field-field dimana column yang dicomparenya menghasilkan nilai true, tentu saja baris-baris yang columnya di compare dan menghasilkan nilai false tidak akan ditampilkan.
Bagaimanapun juga, suatu waktu, ada permintaan untuk menampilkan column-column yang tidak cocok ini, baik dari tabel 1 atau pun tabel 2.
Permintaan untuk menampilkan Column yang bersesuaian sering disebut dengan Join, sedangkan untuk menampilkan data yang tidak bersesuaian di sebelah kiri atau tabel pertama disebut Left Outer Join dan untuk menampilkan data yang tidak bersesuaian di sebelah kanan atau tabel kedua disebut Right Outer Join.
Untuk lebih mudahnya, mari kita lihat contoh berikut,
—Create Tabel pegawai—
create table pegawai ( dept_id varchar2(20), nama varchar2(20)
);
insert into pegawai values (1, ‘Madecenik’ );
insert into pegawai values (2, ‘Hasbie’);
insert into pegawai values (3, ‘Anan’ );
insert into pegawai values (5, ‘Sulaeman’ );
—Create Tabel departemen—
create table departemen (
dept_id varchar2(20) primary key,
dept_name varchar2(20)
);
insert into departemen values (1, ‘IT’ );
insert into departemen values (2, ‘Membership’);
insert into departemen values (3, ‘KP’ );
insert into departemen values (4, ‘HRD’ );
Dalam contoh diatas bisa dilihat ada 2 tabel yang dibuat, yaitu tabel pegawai (nantinya tabel 1) dan tabel departemen (nantinya tabel 2). Dalam pembandingan 2 tabel itu, bisa dilihat apabila data 1 dan 2 ingin di bandingkan dan ingin mengeluarkan nama departemennya dengan cara :
1. Join (=)
Hasil : – 1,Madecenik, IT – 2,Hasbie, Membership – 3,Anan, KP2. Left Outer Join
Hasil : – 1,Madecenik, IT – 2,Hasbie, Membership – 3,Anan, KP – 5,Sulaeman,3. Right Outer Join
Hasil : – 1,Madecenik, IT – 2,Hasbie, Membership – 3,Anan, KP – 4, ,HRD – 5,Sulaeman,Dalam database Oracle, untuk melakukan joining tersebut, dapat digunakan tanda (=) ataupun (+), tentu saja ini tidak berlaku untuk database lain (contoh : SQL) karena dalam SQL sintaksnya berbeda lagi. Ada sedikit keunikan dalam oracle, jangankan untuk dibandingkan dengan SQL, apabila dibandingkan dengan oracle seri berbeda pun sintaksnya akan berbeda, ex: Oracle8i dan Oracle9i. Berikut disampaikan cara menggunakan left outer join dan right outer join didalam oracle.
Left outer join: Oracle8i
select
from pegawai e, departemen d
where e. deptid = d. deptid(+);
Left outer join: Oracle9i
select
from pegawai e
left outer join departemen d
on e. deptid = d. deptid;
Right outer join: Oracle8i
select
from pegawai e, departemen d
where e. deptid(+) = d. deptid;
Right outer join: Oracle9i
select
from pegawai e
right outer join departemen d
on e. deptid = d. deptid;
Demikian cara menggabungkan 2 buah table dengan menggunakan joining di oracle, silahkan digunakan.


Itu perbedaan versi standard SQL, yang pake kata2 “left/right outer join” itu SQL-99 , yang pake e.deptid = d.deptid itu sintaks versi lama, SQL-92 (CMIIW).
Comment by amudi — October 12, 2006 @ 11:22 am