in Practical

Tutorial Dasar Mempelajari SQL Query (Part 3)

Reading Time: 3 minutes

Pada tulisan sebelumnya telah dikemukakan bagaimana menggunakan perintah SELECT. Dalam hal ini akan digunakan kembali perintah SELECT, namun tidak lantas berdiri sendiri melainkan akan ditambahkan perintah-perintah yang berfungsi untuk menggabungkan tabel. Cara menggabungkan tabel itu ada bermacam-macam tergantung keperluannya. Di dalam SQL terdapat 6 jenis cara menggabungkan tabel, yang antara lain sebagai berikut

  1. Left join
  2. Right join
  3. Inner join
  4. Full (outer) join
  5. Cross join
  6. Natural join

Selanjutnya keenam jenis penggabungan tersebut akan diulas ke dalam beberapa subbab di bawah. Dalam hal ini akan digunakan istilah left table dan right table, dimana left tabel merupakan

Left Join

Sederhananya left join ini merupakan penggabungan yang akan mengacu pada left table. Penggabungan ini selanjutnya dapat diilustrasikan sebagaimana berikut

Lingkaran kiri merupakan left table sementara lingakaran kanan merupakan right table. Jelas basis penggabungan ini adalah pada left table, dimana seluruh anggota left table akan turut menjadi output tabel baru, sedangkan anggota yang akan menjadi output dari tabel baru adalah yang beririsan dengan anggota left table.

Diperhatikan bahwasanya di dalam SQL guna menentukan hubungan tersebut digunakan id di masing-masing table.

Selanjutnya penulisan perintah SQL guna melakukan left join adalah sebagai berikut

SELECT column1, column2, ...
FROM left_table
LEFT JOIN right_table
	ON left_table.source_id = right_table.target_id;

Right Join

Berkebalikan dengan penjelasan pada Left Join, penggabungan tabel dengan tipe Right Join ini mengacu pada right table. Selayaknya pada ilustrasi di atas, seluruh anggota right table akan turut dalam output table terbaru, sedangkan untuk left table hanya anggota yang berkorespondensi.

Perintah untuk menggunakan right table ini adalah sebagai berikut

SELECT column1, column2, ...
FROM left_table
RIGHT JOIN right_table
	ON left_table.source_id = right_table.target_id;

Inner Join

Inner Join ini dapat pula disebut sebagai sebuah irisan. Dalam hal ini merupakan anggota-anggota yang berada di left table maupun right table, sebagaimana diilustrasikan sebagai berikut

Apabila tidak terdapat suatu data yang beririsan maka akan didapati tabel yang kosong. Adapun penulisan sintaksnya adalah sebagai berikut,

SELECT column1, column2, ...
FROM left_table
[INNER] JOIN right_join
	ON left_table.source_id = right_table.target_id;

Full (outer) Join

Salah satu hal dasar guna memahami jenis penggabungan tabel ini adalah dengan memahami operasi logika OR. Sederhananya sebagaimana pada gambar maka anggota-anggotanya merupakan anggota-anggota di left table atau juga anggota right table. Dengan kata lain seluruh data akan terhimpun.

Penulisan perintah penggabungan Full outer join ini adalah sebagai berikut

SELECT column1, column2, ...
FROM left_table
FULL [OUTER] JOIN right_table
	ON left_table.source_id = right_table.target_id;

Cross Join

Berbeda dengan keempat penggabungan sebelumnya, cross join ini tidak dapat diilustrasikan menggunakaan operasi logika AND atau OR. Cross joinakan nampak sebagaimana pada ilustrasi berikut

Penggabungan Cross Join akan menghasilkan data yang jumlahnya adalah banyaknya data pada left tabel dikalikan dengan banyaknya data pada right table. Adapun penulisan perintahnya adalah sebagai berikut

SELECT column1, column2, ...
FROM left_table
CROSS JOIN right_table;

Lebih lanjut diberikan contoh table produk sebagai left table dan tabel warung sebagai right tabel

nonama_produk
1deterjen
2pewangi
3sabun
tabel produk
nonama_warungnama_penjual
1warung AMX001
2warung BYK201
tabel warung

Apabila dilakukan cross join sebagai mana perintah di bawah ini

SELECT nama_produk, nama_warung, nama_penjual
FROM produk
CROSS JOIN warung;

maka akan diperoleh tabel sebagai berikut

nama_produknama_warungnama_penjual
deterjenwarung AMX001
pewangiwarung AMX001
sabunwarung AMX001
deterjenwarung BYK201
pewangiwarung BYK201
sabunwarung BYK201

Natural Join

Natural join ini pada dasarnya mirip dengan inner join. Salah satu hal yang membedakannya adalah menyoal jumlah kolom. Pada natural join ini kolom yang sama akan tertampil hanya sekali saja. Selain itu dengan natural join ini kita tidak perlu mendefinisikan id mana yang saling berkorespondensi, mengingat id akan ditentukan otomatis dari penamaan kolom yang sama.

Penggunaan natural join ini dapat dengan menuliskan perintah berikut

SELECT column1, column2, ...
FROM left_table
NATURAL JOIN right_table;

  •  
  •  
  •  
  •  
  •