SQL Server JOIN

Pada artikel kali ini kita akan membahas query dengan JOIN yang berfungsi untuk menggabungkan dua buah tabel dengan relasi tertentu.

Dalam database relasional, data biasanya disajikan dalam bentuk tabel-tabel yang saling berhubungan. Untuk mendapatkan satu gabungan data tertentu dari beberapa tabel, query bisa dilengkapi dengan yang namanya "JOIN".

Pada SQL Server sendiri terdapat beberapa jenis JOIN yang didukung, diantaranya 

  • INNER JOIN, 
  • LEFT JOIN, 
  • RIGHT JOIN, 
  • FULL OUTER JOIN 
  • CROSS JOIN.

Setiap tipe gabungan menentukan bagaimana SQL Server menggunakan data dari satu tabel untuk memilih nilai di baris di tabel lain.

Untuk penjelasan lebih detail kita akan mengunakan contoh 2 tabel yaitu Employee dan Volunteer sebagai berikut:


SQL Server Inner Join

Query "INNER JOIN" akan menampilkan data dengan nilai relasi yang cocok dari tabel kanan maupun kiri. Pada tabel contoh tabel Employee dan Volunteer direlasikan dengan kolom code, jadi hasil INNER JOIN hanya akan menampilkan data dengan nilai code yang ada di kedua table saja.

Jika disajikan dalam diagram ven adalah sebagai berikut:

Berikut ini adalah contoh query INNER JOIN. Pada query join ini kita juga bisa melihat bagaimana tabel alias dan  kolom alias berperan penting.

Query:

SELECT e.code employee_code, e.name employee_name, 
       v.code volunteer_code, v.name volunteer_name 
FROM   [dbo].[Employee] e INNER JOIN  
       [dbo].[Volunteer] v ON e.code = v.code

Hasil:



SQL Server Left Join

Left join adalah query join yang akan memilih data mulai dari tabel kiri dan baris yang cocok di tabel kanan. Left join akan menampilkan semua baris dari tabel kiri dan hanya baris yang cocok dari tabel kanan. Jika baris di tabel kiri tidak memiliki baris yang cocok di tabel kanan, kolom tabel kanan akan memiliki nilai NULL. Left join juga dikenal sebagai Left outer join. Kata outer dalam query dituliskan secara opsional.

Jika disajikan dalam diagram ven adalah sebagai berikut:


Query:

SELECT e.code employee_code, e.name employee_name, 
       v.code volunteer_code, v.name volunteer_name 
FROM   [dbo].[Employee] e LEFT JOIN  
       [dbo].[Volunteer] v ON e.code = v.code

Hasil:


SQL Server Right Join

Kebalikan dari Left join, Right join adalah query join yang akan memilih data mulai dari tabel kanan dan baris yang cocok di tabel kiri. Right join akan menampilkan semua baris dari tabel kanan dan hanya baris yang cocok dari tabel kiri. Jika baris di tabel kanan tidak memiliki baris yang cocok di tabel kiri, kolom tabel kiri akan memiliki nilai NULL. Right join juga dikenal sebagai Right outer join. Kata outer dalam query dituliskan secara opsional.

Jika disajikan dalam diagram ven adalah sebagai berikut:

Query:

SELECT e.code employee_code, e.name employee_name, 
       v.code volunteer_code, v.name volunteer_name 
FROM   [dbo].[Employee] e RIGHT JOIN  
       [dbo].[Volunteer] v ON e.code = v.code

Hasil:



SQL Server Full Outer Join

Full Outer Join atau bisa juga dituliskan Full Join akan menampilkan data yang berisi semua baris dari tabel kiri dan kanan, dengan baris yang cocok dari kedua sisi akan disebariskan jika ada. Jika tidak ada kecocokan, sisi yang hilang akan memiliki nilai NULL.

Query:

SELECT e.code employee_code, e.name employee_name, 
       v.code volunteer_code, v.name volunteer_name 
FROM   [dbo].[Employee] e FULL JOIN  
       [dbo].[Volunteer] v ON e.code = v.code

Hasil:



SQL Server Cross Join

Tidak seperti tipe Join lainnya, Cross Join tidak membuat hubungan antara tabel yang digabungkan. CROSS JOIN menggabungkan setiap baris dari tabel pertama (kiri) dengan setiap baris dari tabel kedua (kanan). Dengan kata lain, Cross Join membuat kombinasi untuk setiap tabel kiri dan kanan.


Query:

SELECT e.code employee_code, e.name employee_name, 
       v.code volunteer_code, v.name volunteer_name 
FROM   [dbo].[Employee] e CROSS JOIN  
       [dbo].[Volunteer] v 

Hasil:



Post a Comment

0 Comments