SQL Server: JOIN tanpa Mengikutsertakan Data dengan Relasi yang Cocok

Kita sudah pernah membahas query SQL JOIN  untuk menghubungkan 2 tabel dengan relasi tertentu. Relasi data yang cocok akan perpotongan jika disajikan dalam diagram Venn. Lalu bagaimanakah caranya jika kita ingin data yang cocok (perpotongan data) tidak ikut ditampilkan dalam hasil Query? Dengan kata lain disini kita justru ingin membuang/menghapus data yang memiliki relasi cocok antar tabel.

Kita masih akan menggunakan sample tabel sebelumnya untuk penjelasan lebih detail yaitu tabel  Employee dan Volunteer sebagai berikut:


1. Kita ingin menampilkan semua data dari tabel kiri tapi tidak mengikutsertakan data yang cocok dan ada di tabel kanan.


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
WHERE v.code IS NULL


2. Kita ingin menampilkan semua data dari tabel kanan tapi tidak mengikutsertakan data yang cocok dan ada di tabel kiri.


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
WHERE e.code IS NULL


3. Kita ingin menampilkan semua data dari tabel kiri dan kanan tapi tidak mengikutsertakan data yang cocok (berelasi) diantara keduanya.


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
WHERE e.code IS NULL OR v.code IS NULL


Jadi begitulah caranya mengeluarkan hasil relasi join yang cocok dari list hasil query.


Post a Comment

0 Comments