Join Table

cara join table sql

Join Table
Tipe-tipe Join Table

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 :
  1. Cartesian product (CROSS JOIN)
  2. INNER JOIN
  3. LEFT JOIN (LEFT OUTER JOIN)
  4. RIGHT JOIN (RIGHT OUTER JOIN)

a. Cartesian Products

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 :

SELECT [field1], [field2], [..] FROM [tabel_A] CROSS JOIN [tabel_B]; 
atau :
SELECT [field1], [field2], [..] FROM [tabel_A], [tabel_B]; 

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 :

SELECT [field1], [field2], [..], [fieldn] FROM [tabel_A] INNER JOIN [tabel_B]  ON [tabel_A].[field key] = [tabel_B].[field_key];

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:

SELECT [field1], [field2], [..], [fieldn] FROM [tabel_A] LEFT JOIN [tabel_B]  ON [tabel_A].[field key] = [tabel_B].[field_key];

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:

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];