Thursday, August 15, 2013

Sharing Everything From My Experience And Knowlegde

Sharing Everything From My Experience And Knowlegde


T-SQL : Belajar INNER JOIN, LEFT OUTER JOIN, RIGHT OUTER JOIN, CROSS JOIN dengan Mudah

Posted: 15 Aug 2013 01:31 AM PDT

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
FROM BARANG AS A CROSS JOIN GROUP_BARANG AS B
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 row

Tags:
cara inner join, cara melakukan left join, right join sql server, sql query cross join, join table sql server, tsql join table example, join table vbnet

No comments:

Post a Comment