Macam Macam Join Pada SQL

 
Apa Itu JOIN ?
 
   Join merupakan sebuah konsep di dalam pengolahan data pada database. Konsep ini menggabungkan dua buah tabel atau lebih sehingga menghasilkan sebuah tabel baru yang bersifat temporary atau sementara. Melalui tabel baru ini akan dapat diperoleh hubungan tiap data pada tabel-tabel yang digabungkan. Tabel baru ini disebut sebagai joined table.

Macam-Macam Join 


    Pada MySQL dikenal beberapa macam join yang dapat dikelompokkan menjadi dua, yaitu inner join dan outer join. Inner join dapat dibagi kembali menjadi natural join dan cross join. Sedangkan outer join dapat dibedakan menjadi left outer join, right outer join, dan full outer join.

a. Inner Join dan Natural Join

     Inner join dan natural join merupakan join yang digunakan untuk menemukan persimpangan atau perpotongan antara dua buah tabel yang di-join-kan. Join ini akan mengembalikan atau menampilkan data-data yang saling berpasangan di anatara kedua

buah tabel. Syntax untuk inner join dan natural join adalah sebagai berikut:

Cara #1. Inner Join dengan WHERE.

Penggabungan dengan klausa WHERE memiliki bentuk umum sebagai berikut:

SELECT tabel1.*, tabel2.* FROM tabel1, tabel2 WHERE tabel1.PK=tabel2.FK;



Cara #2. Inner Join dengan klausa INNER JOIN.

Berikut ini bentuk umumnya:

SELECT tabel1.*, tabel2.* FROM tabel1 INNER JOIN tabel2 ON tabel1.PK=tabel2.FK;



b. Cross Join

Cross join merupakan inner join dengan seluruh kondisi join (tidak hanya data yang berpasangan) dianggap bernilai true. Sesuai dengan namanya, join ini akan mengembalikan semua kemungkinanpasangan atau persilangan data pada tabel yang satu dengan data pada tabel yang lainnya. Syntax untuk cross join adalah sebagai berikut:



SELECT nama_kolom

FROM tabel_1 CROSS JOIN tabel_2;



c. Left Outer Join dan Right Outer Join


      Left outer join merupakan join yang akan mengembalikan seluruh data pada tabel sebelah kiri (left table) yang memiliki pasangan pada tabel sebelah kanan (right table) ditambah data-data pada left table yang tidak memiliki pasangan pada tabel sebelah kanan. Sedangkan right outer join sebaliknya.Untuk data-data yang tidak memiliki pasangan, pada joined table yang dihasilkan data-data tersebut akan dipasangkan dengan data null. Syntax untuk left outer join dan right outer join adalah sebagai berikut:



SELECT nama_kolom

FROM tabel_kiri LEFT OUTER JOIN tabel_kanan

ON tabel_kiri.nama_kolom = tabel_kanan.nama_kolom;



SELECT nama_kolom

FROM tabel_kiri RIGHT OUTER JOIN tabel_kanan

ON tabel_kiri.nama_kolom = tabel_kanan.nama_kolom;



d. Full Outer Join

      Full outer join merupakan kombinasi dari hasil left outer join dengan right outer join. MySQL tidak mengenal klausa full outer join. Oleh karena itu, untuk mendapatkan joined table hasil dari full outer join digunakan klausa atau operator UNION untuk menggabungkan hasil query yang menggunakan left outer join dengan hasil query yang menggunakan right outer join. Syntax untuk full outer join adalah sebagai berikut:



SELECT nama_kolom

FROM tabel_kiri LEFT OUTER JOIN tabel_kanan

ON tabel_kiri.nama_kolom = tabel_kanan.nama_kolom

UNION

SELECT nama_kolom

FROM tabel_kiri RIGHT OUTER JOIN tabel_kanan

ON tabel_kiri.nama_kolom = tabel_kanan.nama_kolom;


EmoticonEmoticon