MYSQL
SUBSTANSI :
1. LEFT OUTER JOIN
2. RIGHT OUTER JOIN
3. INNER JOIN
4. STRAIGHT_JOIN
5. NATURAL JOIN
6. CROSS JOIN
Dengan asumsi bahwa semua field pada tabel di atas sudah berisi dengan data - data
Keterangan :
Pada dasarnya semua field pada tabel di atas sudah memiliki data masing-masing namun dikarenakan
kita menggunakan perintah query LEFT OUTER JOIN, maka data yang di tampilkan hanya field pada sisi
kiri saja (lingkup tabel yang sama), sementara data field pada sisi kanan (lingkup tabel yang sama) di
hidden / tidak di tampilkan, pada tabel di atas kita indikasikan dengan warna biru.
Contoh :
Dengan
menggunakan database northwind kita
seperti customers denganorder.
akan
menggabungkan
relasi
tabel,
Jika ingin memahami lebih jauh dengan cara mempraktekannya, silakan download terlebih dahulu
database northwind DI SINI
Dengan perintah Query seperti dibawah ini :
SELECT customers.CustomerID, customers.ContactName,
orders.OrderID, orders.OrderDate
FROM customers LEFT OUTER JOIN orders
ON customers.CustomerID=orders.OrderID;
atau
SELECT customers.CustomerID, customers.ContactName,
orders.OrderID, orders.OrderDate
FROM customers LEFT JOIN orders
ON customers.CustomerID=orders.OrderID;
Maka akan diperoleh hasil seperti di bawan ini :
Dengan asumsi bahwa semua field pada tabel di atas sudah memiliki data-data.
Keterangan :
Pada dasarnya semua field pada tabel di atas sudah memiliki data masing-masing namun
dikarenakan kita menggunakan perintah query RIGHT OUTER JOIN, maka data yang di
tampilkan hanya field pada sisi kanan saja (lingkup tabel yang sama), sementara data field
pada sisi kiri (lingkup tabel yang sama) di hidden / tidak di tampilkan, pada tabel di atas kita
indikasikan dengan warna biru.
Contoh :
Dengan
menggunakan database
northwind kita
akan
menggabungkan
atau
SELECT customers.CustomerID, customers.ContactName,
orders.OrderID, orders.OrderDate
FROM customers RIGHT JOIN orders
ON customers.CustomerID=orders.OrderID;
relasi
tabel,
3. INNER JOIN
Dengan INNER JOIN, tabel akan digabungkan dua arah, sehingga tidak ada data yang NULL di satu sisi
atau
dengan
kata
lain
data
NULL
tidak
akan
di
tampilkan,
Sebagai
contoh,
dengan
menggunakan database northwind kita akan menggabungkan tabel customers dan orders dimana kita
akan menampilkan daftar customers yang pernah melakukan order.
Maka
diperoleh
hasil
orders.OrderID,
Kesimpulan
INNER JOIN digunakan untuk mencari data yang sama antara dua table, sedangkan OUTER JOIN
digunakan
untuk
mencari
data
yang
sama
sekaligus
data
yang
tidak
sama.
4. STRAIGHT_JOIN
Dari kata straight yang artinya lurus atau jujur atau apa adanya, jadi STRAIGHT_JOIN merupakan
operator MySQL yang di gunakan untuk menggabungkan 2 tabel secara menyeluruh dan apa adanya,
meskipun
tidak
ada
keterkaitan
data.
Perintah STRAIGHT_JOIN sama seperti dengan JOIN, namun STRAIGHT_JOIN tidak mengenal klausa
WHERE. Dengan menggunakan database northwind, maka perhatikan contoh penggunaan berikut ini :
Meskipun tabel customers dengan tabel products tidak ada relasi (kesamaan data) maka dengan
perintahSTRAIGHT_JOIN keduanya
tetap
bisa
di
gabungkan,
Hasil eksekusi :
5. NATURAL JOIN
Operasi natural join adalah operasi equijoin yang memiliki kesamaan dalam semua field yang memiliki
nama yang sama dalam tabel R dan tabel S. Dalam hal ini, kita dapat menghilangkan kondisi dalam
operasi join karena akan menghasilkan dua field dengan nama yang sama.
Jadi untuk melakukan NATURAL JOIN antara dua tabel harus memenuhi syarat berikut ini : Dua tabel
yang ingin di NATURAL JOIN harus mempunyai minimal satu nama kolom atau field yang sama dan tipe
data yang sama, jika tidak maka akan terjadi error.
Contoh :
Dengan menggunakan database norhwind, kita akan melakukan NATURAL JOIN pada tabel customers
dengan orders, dimana kedua tabel tersebut memiliki kesamaan field dan tipe data pada kolom
CustomersID.
SELECT CustomerID, CompanyName, OrderID, OrderDate
6. CROSS JOIN
Cross Join disebut juga dengan CARTESIAN PRODUCT yaitu perkalian dari 2 buah tabel.
Ilustrasi :
Misalkan data tabel A : {a,b,c,d } , data Tabel B {F,G,H,I}
Jika tabel A CROSS JOIN tabel B, maka akan menjadi {aF, aG, aH, aI, bF, bG, bH, bI, cF, cG, cH, cI, dF,
dG, dH, dI}.
Contoh :
Dengan database northwind, kita akan melakukan CROSS JOIN pada tabel categories dengan tabel
shippers.
Dimana
tabel
categories
sebagai
berikut
Dan
tabel
shippers
sebagai
berikut
hasilnya
akan
seperti
di
bawah
ini
Sekian pembahasan tentang perbedaan fungsi JOIN pada mySQL kali ini, semoga bermanfaat,
terimakasih.. salam programmer.