T-SQL : Belajar INNER JOIN, LEFT OUTER JOIN, RIGHT OUTER JOIN, CROSS JOIN dengan Mudah
Sekarang saya akan share bagaimana cara belajar T-SQL
INNER JOIN, LEFT OUTER JOIN, RIGHT OUTER JOIN dan CROSS JOIN dengan
mudah. Ok sebelumnya saya mau jelaskan jika sebenarnya kita bisa
menyingkat penulisan diatas tanpa kata INNER dan OUTER, jadi cukup JOIN,
LEFT JOIN, RIGHT JOIN dan CROSS JOIN. ok saya punya data seperti
dibawah ini (dua table : Barang, group_barang)
Saya menandai bahwa disana ada 2 barang yang kode group nya tidak ada di master table group_barang, yang satu blank dan yang satu lagi G0033.
1. JOIN (INNER JOIN)
SELECT A.KODE_BARANG, A.NAMA_BARANG, A.KODE_GROUP, B.NAMA_GROUP
FROM BARANG AS A JOIN GROUP_BARANG AS B
ON A.KODE_GROUP = B.KODE_GROUP
Cara mengigatnya tinggal table_name1 JOIN table_name2 ON table_name1.field = table_name2.field, jadi akan menghasilkan data yang kode_group nya sama saja antara table Barang dan Group_barang. Ini Hasilnya
2. LEFT JOIN (LEFT OUTER JOIN)
SELECT A.KODE_BARANG, A.NAMA_BARANG, A.KODE_GROUP, B.NAMA_GROUP
FROM BARANG AS A LEFT JOIN GROUP_BARANG AS B
ON A.KODE_GROUP = B.KODE_GROUP
Konsep cara mengingatnya sama seperti INNER JOIN, tapi yang perlu diperhatikan adalah posisi table (dikiri dan kanan-nya), contoh :
BARANG AS A LEFT JOIN GROUP_BARANG AS B : artinya ambil semua data dari kiri (table BARANG) walaupun ada kode_group yang tidak sama dengan master GROUP_BARANG. Ini hasilnya :
Tapi kitapun bisa menghasilkan data yang sama dengan RIGHT JOIN, lho.. caranya ? hehehe,, Ingat posisi table nya, kita tinggal pindahkan saja (balik) menjadi seperti ini :
SELECT A.KODE_BARANG, A.NAMA_BARANG, A.KODE_GROUP, B.NAMA_GROUP
FROM GROUP_BARANG AS B RIGHT JOIN BARANG AS A
ON A.KODE_GROUP = B.KODE_GROUP
Artinya ambil semua dari kanan (table BARANG) walaupun ada kode_group yang tidak sama dengan master GROUP_BARANG. Ini hasilnya (sama) :
3.RIGHT JOIN (RIGHT OUTER JOIN)
Penjelasannya sama seperti poin no.3, hanya tinggal memposisikan table
nya dikiri atau dikanan. Sekarang jika kita coba untuk mengambil semua
data dari table GROUP_BARANG, contoh :
SELECT A.KODE_BARANG, A.NAMA_BARANG, A.KODE_GROUP, B.NAMA_GROUP
FROM BARANG AS A RIGHT JOIN GROUP_BARANG AS B
ON A.KODE_GROUP = B.KODE_GROUP
lihatlah ada kode_gorup=G003 yang tidak memiliki barang tapi tetap di tampilkan.
4.CROSS JOIN
Cross join ini adalah join sembarang, artinya tanpa menggunakan kata ON table1.field=table2.field, ini contohnya :
SELECT A.KODE_BARANG, A.NAMA_BARANG, A.KODE_GROUP, B.NAMA_GROUP
Ingat hasil CROSS JOIN Pasti menghasilkan
jumlah row perkalian dari jumlah row table1 dan table2, contoh jika
table1=30row dan table2=2row, maka hasil cross join adalah 30x2 = 60 rowSumber : http://djiesoft.blogspot.com/2013/08/t-sql-belajar-inner-join-left-outer.html
0 KOMENTAR