Macam-Macam Fungsi Join Pada SQL

Mengenal Fungsi Join Pada MySQL

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 akan menggabungkan 2 relasi tabel, seperti customers dengan order.
Jika ingin memahami lebih jauh dengan cara mempraktekannya, silakan download terlebih dahulu database northwind disini
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 :
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 2 relasi tabel, seperti customers dengan order.

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 :





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.OrderID, orders.OrderDate
FROM customers INNER JOIN orders
ON customers.CustomerID = orders.CustomerID

Maka diperoleh hasil :



























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.
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 WHEREDengan 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 perintah STRAIGHT_JOIN keduanya tetap bisa di gabungkan,

Hasil eksekusi :
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 :



















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. 

0 KOMENTAR