Join Table
Join Table
Tujuan :
1. Mahasiswa memahami perintah-perintah SQL untuk pengambilan data dari banyak tabel.
2. Mahasiswa mampu memahami tipe-tipe join.
3. Mahasiswa mampu memahami tentang cartesian product.
4. Mahasiswa mampu memahami tentang penggabungan tabel.
Tugas Pendahuluan :
1. Apa yang anda ketahui tentang JOIN?
2. Sebutkan macam-macam JOIN !
3. Apakah perbedaan Left JOIN dengan Right JOIN?
DASAR TEORI
Tipe-tipe join
Di dalam database, ada kalanya membutuhkan data dari beberapa tabel yang saling
berhubungan. Untuk mendapatkan data dari beberapa tabel tersebut dapat digunakan perintah JOIN
pada perintah SQL (Alam, 2005). Fungsi dari operator ini adalah untuk menggabungkan data-data
dari dua buah tabel atau lebih. Operator JOIN ini berlaku pada tabel biasa ataupun VIEW. Untuk
mengambil data dari kombinasi dua tabel atau lebih bisa menggunakan JOIN. MySQL
menyediakan fasilitas penggabungan dan JOIN tabel antara lain [5]:
Cartesian product atau disebut pula sebagai cross join akan menciptakan hasil yang didasarkan
pada semua kemungkinan kombinasi tuple dalam kedua set data. Dengan demikian, jumlah tuple
yang dikembalikan adalah N x M, dimana N adalah jumlah tuple dalam tabel A dan M jumlah
tuple dalam tabel B. Bentuk perintah dari CROSS JOIN pada MySQL adalah :
1
b. INNER JOIN
INNER JOIN ini merupakan perintah JOIN yang paling umum yang dapat digunakan pada semua
basis data. Penggabungan hanya dilakuakan pada dua buah tabel yang telah merelasikan field-nya.
Maksudnya adalah data pada tabel pertama akan dihubungkan dengan data pada tabel kedua
apabila nilai field yang dijadikan patokan relasi kedua tabel memiliki nilai yang sama.
Perbedaan antara EQUI JOIN dan INNER JOIN terletak pada tuple yang dikembalikan (return).
EQUI JOIN mengembalikan tuple yang memiliki isi yang sama pada field tertentu. Sedangkan dua
atau lebih tabel yang digabungkan pada INNER JOIN hanya mengembalikan tuple yang memenuhi
syarat penggabungan. Bentuk baku perintah INNER JOIN :
c. LEFT JOIN
LEFT JOIN (left outer join) akan menampilkan data pada tabel kiri walaupun tidak memiliki relasi
pada tabel di bagian kanan, bentuk perintahnya sebagai berikut:
Atau
SELECT [field1], [field2], [..], [fieldn]
FROM [tabel_A]
LEFT OUTER JOIN [tabel_B]
ON [tabel_A].[field key] = [tabel_B].[field_key];
d. RIGHT JOIN
RIGHT JOIN (right outer join) akan menampilkan data pada tabel disebelah kanan walaupun tidak
mempunyai data yang berhubungan dengan tabel disebelah kirinya. Bentuk perintahnya sebagai
berikut:
2
SELECT [field1], [field2], [..], [fieldn]
FROM [tabel_A]
RIGHT JOIN [tabel_B]
ON [tabel_A].[field key] = [tabel_B].[field_key];
Atau
SELECT [field1], [field2], [..], [fieldn]
FROM [tabel_A]
RIGHT OUTER JOIN [tabel_B]
ON [tabel_A].[field key] = [tabel_B].[field_key];
KEGIATAN PRAKTIKUM
Agar lebih memperdalam pemahaman tentang fungsi-fungsi MySQL diatas, silahkan coba perintah
dibawah ini pada basis data “toko” yang anda buat.
a. Cartesian Products
Atau
SELECT barang.id_barang, pembelian.id_pembeli,
pembelian.nama_pembeli, barang.nama_barang
FROM barang, pembelian
Hasil dari kedua perintah tersebut sama-sama cartesian product. Dapat diperhatikan pula
bahwa CROSS JOIN tidak memerlukan perintah ON, karena tidak diperlukan pencocokan field.
Gambar 4.1 merupakan hasil kedua perintah diatas.
3
Gambar 3.1 Hasil dari CROSS JOIN
b. INNER JOIN
c. LEFT JOIN
4
Gambar 3.3 Hasil LEFT JOIN pada tabel pembelian
d. RIGHT JOIN