April 3

Join pada SQL Server

Malam ini saya ingin berbagi ilmu mengenai JOIN. Apa itu JOIN? JOIN merupakan salah satu operasi untuk menghubungkan dua atau lebih tabel yang saling berelasi (walaupun dalam prakteknya kita dapat menghubungkan tabel-tabel yang tidak berelasi sama sekali). Operasi JOIN yang akan saya bahas pada tulisan ini terbatas pada operasi JOIN dalam SQL Server. JOIN sendiri memiliki berbagai jenis, diantaranya : JOIN, INNER JOIN, LEFT JOIN, LEFT OUTER JOIN, RIGHT JOIN, RIGHT OUTER JOIN, CROSS JOIN, dan JOIN dengan koma. Akan saya bahas satu-persatu jenis-jenis JOIN tersebut. Dalam setiap penjelasan, saya berikan contoh untuk mempermudah pemahaman. Oleh karena itu, pertama kita siapkan dua buah tabel sebagai contoh dengan nama tabel barang dan tabel gudang (saya anggap SQL Server sudah terinstal di kompiter). Berikut script create tabelnya :

– Tabel barang :

  • Tabel gudang :

Isi kedua tabel dengan data-data berikut :

  • Tabel barang :

Untuk barang yang kode_gudang nya NULL kita anggap barang tersebut belum disimpan di dalam gudang manapun.

  • Tabel gudang :

Pada setiap contoh, akan saya jadikan tabel barang berada di sebelah kiri hasil dan tabel gudang berada di sebelah kanan hasil.

1. JOIN / INNER JOIN

JOIN / INNER JOIN merupakan jenis JOIN yang digunakan untuk mendapatkan data dari dua tabel atau lebih yang persis saling berelasi. Kalau kita gambarkan dengan diagram, hasil dari JOIN dengan menggunakan JOIN / INNER JOIN merupakan irisan dari relasi antar tabel.

Inner JoinContoh kasus :

Seorang pegawai ingin melihat semua data barang beserta nama gudangnya dengan catatan barang tersebut telah berada dalam gudang.

Maka script yang harus kita gunakan dalam kasus ini yaitu menggunakan script JOIN / INNER JOIN.

Berikut script JOIN :

atau menggunakan INNER JOIN :

Hasilnya :

Contoh Inner Join

2. LEFT JOIN / LEFT OUTER JOIN

LEFT JOIN / LEFT OUTER JOIN merupakan jenis JOIN yang digunakan untuk mendapatkan data dari dua tabel atau lebih dimana data di tabel sebelah kiri ditampilkan semua baik yang berelasi dengan data di tabel sebelah kanan maupun tidak. Kalau kita gambarkan dengan diagram, hasil dari JOIN dengan menggunakan LEFT JOIN / LEFT OUTER JOIN seperti berikut :

Left Join

Contoh kasus :

Seorang pegawai ingin melihat semua data barang beserta nama gudangnya baik barang itu sudah berada dalam gudang maupun belum berada dalam gudang.

Maka script yang harus kita gunakan dalam kasus ini yaitu menggunakan script LEFT JOIN / LEFT OUTER JOIN.

Berikut script LEFT JOIN :

atau menggunakan LEFT OUTER JOIN :

Hasilnya :

Contoh Left JoinDari hasil kita dapat lihat bahwa data barang yang tidak berelasi dengan data gudang tetap ditampilkan, namun data di sebelah kanan (data gudang) diisi dengan NULL.

3. RIGHT JOIN / RIGHT OUTER JOIN

RIGHT JOIN / RIGHT OUTER JOIN merupakan jenis JOIN yang digunakan untuk mendapatkan data dari dua tabel atau lebih dimana data di tabel sebelah kanan ditampilkan semua baik yang berelasi dengan data di tabel sebelah kiri maupun tidak. Kalau kita gambarkan dengan diagram, hasil dari JOIN dengan menggunakan RIGHT JOIN / RIGHT OUTER JOIN seperti berikut :

Right Join

Contoh kasus :

Seorang pegawai ingin melihat semua data barang beserta nama gudangnya dengan catatan gudang yang tidak berisi barangpun tetap ditampilkan.

Maka script yang harus kita gunakan dalam kasus ini yaitu menggunakan script RIGHT JOIN / RIGHT OUTER JOIN.

Berikut script RIGHT JOIN :

atau menggunakan RIGHT OUTER JOIN :

Hasilnya :

Contoh Right JoinDari hasil kita dapat lihat bahwa data gudang yang tidak berelasi dengan data barang tetap ditampilkan, namun data di sebelah kiri (data barang) diisi dengan NULL.

4. CROSS JOIN

CROSS JOIN merupakan jenis JOIN yang digunakan untuk mendapatkan data kombinasi dari dua tabel atau lebih. Misalkan, n = jumlah baris data pada tabel di sebelah kiri, dan m = jumlah baris data pada tabel di sebelah kanan. Maka hasil jumlah baris dari CROSS JOIN adalah n X m baris data.

Contoh kasus :

Seorang pegawai ingin melihat semua kombinasi data barang yang dapat disimpan ke dalam gudang.

Maka script yang harus kita gunakan dalam kasus ini yaitu menggunakan script CROSS JOIN.

Berikut script CROSS JOIN :

Hasilnya :

Contoh Cross JoinDi sini kita hasil menggunakan CROSS JOIN yaitu kombinasi antara tabel barang dengan tabel gudang dengan jumlah baris hasilnya 39. Dimana jumlah baris data barang adalah 13 data dan jumlah baris data gudang adalah 3 data. 39 = 13 X 3

5. JOIN dengan koma

Selain menggunakan operator JOIN, kita juga dapat melakukan JOIN antar tabel dengan menggunakan koma. Bila kita tidak menambahkan kondisi relasi dengan menggunakan WHERE, maka JOIN dengan koma akan menghasilkan data yang sama apabila kita menggunakan CROSS JOIN. Misal dengan script berikut :

Maka akan menghasilkan data kombinasi seperti berikut :

Contoh Join Koma tanpa kondisiNamun, apabila kita menambahkan kondisi dengan merelasikan kolom yang berelasi menggunakan WHERE saat JOIN dengan koma. Maka hasilnya seperti kita menggunakan JOIN / INNER JOIN.

Misal dengan script berikut :

Maka hasilnya seperti berikut :

Contoh Join Koma dengan kondisiDengan kata lain, menggunakan koma merupakan alternatif lain dari JOIN pada SQL Server.

Penggunaan operator JOIN mana yang kita gunakan tergantung dari keperluan data yang diinginkan.


Copyright 2021. All rights reserved.

Posted April 3, 2015 by agunahwan in category "Programming", "Tentang Komputer

1 COMMENTS :

  1. Pingback: Menyimpan hasil insert yang disimpan ke suatu tabel dari suatu tabel ke dalam tabel lain | Agunahwan's Blog

Tinggalkan Balasan