a.
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.
b.
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.
1. 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;
2. 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;
3.
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;
4.
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;
c. Penggunaan Operator IS NULL
Seperti yang telah
dijelaskan pada bagian outer join, data yang diperoleh dari suatu query
dapat mengandung nilai null. Untuk mem-filter query agar hanya
menampilka data yang mengandung nilai null saja dapat menggunakan
operator IS NULL pada klausa WHERE.
d. Penggunaan Operator DISTINCT
Pada saat melakukan
pengambilan data di dalam database terkadang dijumpai suatu kondisi
dimana data yang sama diperoleh atau muncul lebih dari satu baris.
Untukmenghilangkan kemunculan data yang berulang-ulang ini dapat menggunakan
operator DISTINCT pada klausa SELECT. Dengan menggunakan operator ini,
data yang sama hanya akan muncul satu kali atau hanya pada satu baris.
e. Penggunaan Operator AS
Operator AS
berfungsi untuk mengubah nama kolom atau field pada suatu hasil query.
Perubahan nama kolom ini hanya berlaku pada hasil query tersebut, tidak
mengubah nama kolom asalnya.
2.
Latihan
Gunakanlah kembali database
akademik_sekolah yang pernah siswa buat pada latihan meteri terdahulu.
a.
Inner Join dan Natural Join
Inner
join maupun natural join dapat digunakan untuk mengetahui data
siswa sekaligus nilai yang diperolehnya. Jalankan query berikut dan
perhatikan hasilnya:
Cara 1 :
Cara 2 :
b.
Cross
Join
Jalankanlah
query berikut:
c. Left Outer Join dan Right
Outer Join
Jalankanlah
query berikut dan perhatikan hasilnya:
Jalankan pula query berikut
dan perhatikan kembali hasilnya:
d.
Full Outer Join