Dec 30, 2005

"Outer Join" di Oracle 9i+

·

Sebelum Oracle 9i, outer join di Oracle dibuat dengan menggunakan tanda (+), yang mungkin agak membingungkan apabila diimplementasikan ke dalam query-query yang cukup kompleks. Namun, mulai Oracle 9i kesulitan tersebut telah diatasi dengan menghadirkan klausa LEFT OUTER JOIN (LEFT JOIN), RIGHT OUTER JOIN (RIGHT JOIN), dan FULL OUTER JOIN (FULL JOIN) sebagai salah satu fitur baru.

Tujuan dari outer join itu sendiri adalah untuk menampilkan baris-baris yang tidak memiliki pasangan (non-matching), dan menampilkannya dengan nilai NULL.

Sebagai contoh, apabila kita memiliki dua buah tabel, yaitu T1 dan T2 yang direlasikan menggunakan kolom B, maka kita dapat menuliskan sintak untuk outer join seperti berikut:

1. Left Outer Join

Oracle 8i:

select * from T1, T2
    where T1.B = T2.B (+)

Oracle 9i:

select * from T1
LEFT OUTER JOIN T2
    on T1.B = T2.B

atau sama juga bila dituliskan seperti di bawah ini

select * from T1
LEFT JOIN T2
     on T1.B = T2.B

2. Right Outer Join

Oracle 8i:

select * from T1, T2
     where T1.B (+) = T2.B

Oracle 9i:

select * from T1
RIGHT OUTER JOIN T2
     on T1.B = T2.B

atau sama juga bila dituliskan seperti di bawah ini

select * from T1
RIGHT JOIN T2
     on T1.B = T2.B

3. Full Outer Join

Meskipun tidak secara langsung menggantikan fitur yang ada di Oracle 8i (dan versi sebelumnya), namun di Oracle 9i sudah ditambahkan kemampuan untuk melakukan full outer join. Hal ini akan sangat membantu untuk mengetahui baris-baris mana saja yang tidak memiliki pasangan di antara kedua tabel bersangkutan. Berikut ini sintak yang digunakan untuk melakukan full outer join di Oracle 9i (dan versi di atasnya).

select * from T1
FULL OUTER JOIN T2
     on T1.B = T2.B

atau sama juga bila dituliskan seperti di bawah ini

select * from T1
FULL JOIN T2
     on T1.B = T2.B

0 comments: