1. Pengertian Join
Untuk mendapatkan data dari dua atau lebih tabel, maka
table-tabel tersebut harus dihubungkan terlebih dahulu, atau yang biasa
disebut dengan JOIN.
Bentuk umum JOIN :
SELECT table1.column, table2.column FROM tabel1,
tabel2
WHERE tabel1.column=table2.column;
2. Cartesian Product
Cartesian product dibentuk pada saat
:
1. Kondisi join diabaikan
2. Kondisi join tidak valid
3. Semua baris dalam table pertama dijoinkan ke
semua baris dalam table kedua.
3. Beberapa tipe utama join,
yaitu :
a). Equijoin
Misalnya table EMP memiliki primary
key empno, dan memiliki foreign key deptno
dimana deptno ini merupakan primary
key dari table yang lain yaitu table DEPT.
Relasi antara EMP dengan DEPT
disebut equi-join.
Menambahkan Kondisi Pencarian dengan
Operator AND
Operator logika (AND, OR, NOT) bisa digunakan pada kondisi
pencarian yang ada pada klausa WHERE. Penggunaan Tabel Alias
Query dapat disederhanakan dengan penggunaan table alias.
Contoh query berikut:
SELECT emp.empno, emp.ename, emp.deptno, dept.loc
FROM emp, dept
WHERE emp.deptno=dept.deptno;
Dengan menggunakan table alias akan diubah seperti berikut :
SELECT e.empno, e.ename, e.deptno, d.loc
FROM emp e, dept d
WHERE e.deptno=d.deptno;
b) Non-equijoin
Relasi antara dua table disebut
non-equijoin jika kolom pada table pertama berkorespondensi langsung
dengan kolom pada table kedua. Misalnya table EMP terdiri dari kolom empno,
ename, sal. Dan table SALGRADE terdiri dari kolom grade, losal,
hisal. Maka kolom sal pada table EMP berkorespondensi langsung dengan
losal dan hisal pada table SALGRADE yang nantinya akan memberikan suatu
nilai grade yang bersesuaian.
c) Outer Join
Jika terdapat baris yang tidak
memenuhi kondisi join, dan akan ditampilkan pada hasil query, maka
digunakan outer join. Misalnya pada hasil query berikut, department
‘OPERATIONS’ tidak ditampilkan karena tidak memenuhi kondisi join yang
disebutkan. Outer join dapat digunakan dengan menggunakan tanda plus (+). Jika
akan ditampilkan kolom pada table department (DEPT) yang tidak bersesuaian
dengan semua kolom yang ada pada table pegawai (EMP), digunakan query
dengan outer join.
d) Self Join
Seringkali sebuah table perlu
dijoin-kan dengan table itu sendiri. Misal pada saat mencari manager dari
seorang pegawai maka table pegawai di-joinkan dengan table pegawai untuk
mendapatkan nomer pegawai manager dan namanya.
4. Dalam penggabungan dari
beberapa tabel join ada beberapa hal yang perlu diperhatikan, antara lain
:
a) Setiap kolom disebutkan dengan
bentuk.
b) Tabel-tabel yang dilibatkan dalam
queri perlu disebutkan dalam Klausa FORM dengan antar tabel dipisah oleh
koma.
c) Kondisi dalam WHERE menetukan
macam join yang terbentuk.
5. Macam-macam bentuk
Penggabungan (Join)
a. CROSS JOIN
Cross Join merupakan bentuk
penggabungan yang paling sederhana, tanpa ada kondisi.
Bentuk Umum : SELECT field1,field2
FROM Tabel1 CROSS JOIN tabel2;
b. INNER JOIN
Hampir sama dengan cross join tetapi
diikuti dengan kondisi.
Inner join berfungsi sebagai
pemetaan relasi one-to-one (satu ke satu), yaitu dimana hanya satu record tabel
A yang sama dengan satu record tabel B, dan hanya satu record tabel B yang sama
dengan satu record tabel A.
Bentuk Umum : SELECT Field FROM
tabel1 INNER JOIN tabel 2 ON kondisi;
c. STRAIGHT JOIN
Straight Join identik dengan inner
join tetapi tidak mengenal klausa where.
Bentuk Umum : SELECT field FROM
Tabel1 SATRIGHT JOIN tabel2;
d. LEFT (OUTER) JOIN
Left (outer) join berfungsi sebagai
pemetaan relasi many-to-one (banyak ke satu), yaitu dimana beberapa record
tabel A yang sama dengan satu record tabel B. Di sini kita akan
menampilkan tabel disebelah kanannya (dalam hal ini tabel nilai)
dengan NULL jika tidak terdapat hubungan antara tabel disebelah kiri
(dalam hal ini tabel siswa).
Bentuk Umum : SELECT field FROM
tabel1 LEFT JOIN tabel2 ON kondisi;
e. RIGHT/OUTER JOIN
Kebalikan dari LEFT JOIN, jika idak
menemukan hubungan dengan tabel disebelah kiri maka akan ditampilkan NULL.
Right outer join berfungsi sebagai
pemetaan relasi one-to-many (satu ke banyak), yaitu dimana hanya satu record
tabel A yang sama dengan beberapa record tabel B.
Bentuk Umum : SELECT field FROM
tabel1 RIGHT JOIN tabel2 ON kondisi;
e. FULL OOUTER JOIN
Full Outer join berfungsi sebagai
pemetaan relasi many-to-many (banyak ke banyak), yaitu dimana beberapa record
tabel A yang sama dengan satu record tabel B, dan beberapa record tabel B yang
sama dengan satu record tabel A.
Tidak ada komentar:
Posting Komentar