Anda di halaman 1dari 10

PERBEDAAN FUNGSI JOIN PADA

MYSQL

Mengenal Fungsi Join Pada MySQL

SUBSTANSI :
1. LEFT OUTER JOIN
2. RIGHT OUTER JOIN
3. INNER JOIN
4. STRAIGHT_JOIN

5. NATURAL JOIN
6. CROSS JOIN

1. LEFT OUTER JOIN


Kata kunci OUTER sebenarnya adalah bersifat opsional jadi, baik ditulis atau tidak, hasilnya akan tetap
sama, sebab pada dasarnya, LEFT OUTER JOIN = LEFT JOIN, sedangkan LEFT JOIN itu sendiri adalah
bagian dari OUTER JOIN. Ilustrasi :

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 :

2. RIGHT OUTER JOIN


Identik dengan LEFT OUTER JOIN yaitu sama-sama merupakan bagian dari OUTER JOIN, hanya saja
RIGHT OUTER JOIN adalah kebalikannya, yaitu RIGHT OUTER JOIN = RIGHT JOIN, dimana data field
yang akan di tampilkan adalah pada sisi kanan, dengan catatan masih dalam lingkup tabel yang
sama. Ilustrasi
:

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

seperti customers denganorder.

Dengan perintah Query seperti dibawah ini :


SELECT customers.CustomerID, customers.ContactName,
orders.OrderID, orders.OrderDate
FROM customers RIGHT OUTER JOIN orders
ON customers.CustomerID=orders.OrderID;

atau
SELECT customers.CustomerID, customers.ContactName,
orders.OrderID, orders.OrderDate
FROM customers RIGHT JOIN orders
ON customers.CustomerID=orders.OrderID;

Maka akan diperoleh hasil seperti di bawan ini :

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.

Dengan menggunakan perintah Query sebagaimana berikut :


SELECT
customers.CustomerID,
customers.Country,
orders.OrderDate
FROM customers INNER JOIN orders
ON customers.CustomerID = orders.CustomerID

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 :

SELECT * FROM customers


STRAIGHT_JOIN products

Meskipun tabel customers dengan tabel products tidak ada relasi (kesamaan data) maka dengan
perintahSTRAIGHT_JOIN keduanya

tetap

bisa

di

gabungkan,

Hasil eksekusi :

Tabel Hasil STRAIGHT_JOIN

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

FROM customers NATURAL JOIN orders


Dan hasilnya seperti di bawah ini :

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

Jika keduanya di CROSS JOIN,


SELECT CategoryName, CompanyName
FROM categories CROSS JOIN shippers
Maka

hasilnya

akan

seperti

di

bawah

ini

Sekian pembahasan tentang perbedaan fungsi JOIN pada mySQL kali ini, semoga bermanfaat,
terimakasih.. salam programmer.

Anda mungkin juga menyukai