Buat Akun DQLab & Akses Kelas Data Science Python, R, SQL, Excel GRATIS

Apa Perbedaan WHERE dan ON pada SQL Join Table?

Belajar Data Science di Rumah 22-Februari-2023
https://dqlab.id/files/dqlab/cache/e6c005987cf92dfce5e180f2128f5abe_x_Thumbnail800.jpeg

SQL atau Structured Query Language berguna sebagai bahasa khusus dalam mengakses dan mengelola data-data yang ada di dalam sebuah basis data relasional. Banyak cara yang bisa dilakukan sesuai kebutuhan ketika menuliskan query SQL. Salah satunya adalah Join Table. Secara umum proses ini digunakan untuk menggabungkan beberapa tabel untuk dapat diakses dan diringkas sehingga informasi yang diperoleh lebih mudah dipahami.


SQL juga memiliki bermacam klausa untuk mempermudah mengakses data secara spesifik. Klausa yang sering digunakan adalah ON dan WHERE. Namun, bagaimana penggunaan keduanya dan perbedaan hasil dari aplikasinya? Nah, kali ini akan dibahas lebih detail serta menggunakan contohnya agar kalian paham perbedaan masing-masing klausa. Yuk simak dan praktikkan juga contoh tersebut!


1. Kondisi WHERE vs ON pada SQL

Tujuan dari ON klausa pada Join SQL adalah untuk menentukan spesifikasi keadaan suatu tabel digabungkan. Dengan kata lain ON klausa digunakan untuk menentukan bagaimana hasil penggabungan harus disatukan. Sedangkan WHERE klausa digunakan untuk memfilter hasil penggabungan. Artinya, hanya baris tertentu yang akan muncul sesuai dengan kondisi yang diinginkan. Perhatikan contoh berikut untuk lebih memahami perbedaannya.


Misalkan kalian memiliki 2 tabel dengan tabel pertama adalah tabel users yang berisi id, nama, dan tanggal_registrasi. Sedangkan tabel kedua adalah tabel status yang berisi id dan status_membership.


SQL

Selanjutnya kita akan melakukan query seperti berikut ini.

SQL

Perhatikan query di atas memiliki klausa ON dan WHERE, yang fungsinya:

  • Dengan ON, kalian menspesifikkan cara menggabungkan kedua tabel tersebut berdasarkan kolom id pada tabel users dan tabel status. 

  • Dengan WHERE, kalian melakukan filter hasil penggabungan, yaitu hanya untuk data yang tanggal_registrasi lebih dari 01-01-2021. 

Sehingga akan diperoleh hasil seperti di bawah ini.

SQL


Baca juga : Saatnya Belajar SQL, Kenali Rekomendasi Query SQL Bagi Pemula


2. Contoh Penggunaannya Pada Inner Join

Pada contoh di atas, kita memisahkan klausa ON dan WHERE . Pada Inner Join, kalian bisa juga menggabungkan klausa tersebut dalam satu perintah. Dibandingkan menggunakan WHERE, filter ini bisa langsung disebutkan pada klausa ON dengan menambahkan AND. Berikut query yang bisa kalian coba.


SQL


Hasil yang didapatkan akan tetap sama. Namun, cara ini tidak direkomendasikan karena sulit untuk dibaca. Terlebih jika kalian nanti menemukan error, maka akan lebih sulit untuk mencari letak kesalahannya. Hal ini juga untuk mempermudah pihak lain yang tidak melakukan query namun ingin membaca detail query yang kalian buat.


3. Contoh Penggunaannya Pada Outer Join

Jika dari contoh di atas, tidak ada permasalahan dalam melakukan filter pada ON, berbeda ketika kalian melakukannya pada Outer Join. Hasil yang kalian dapatkan akan berbeda. Inilah mengapa penting untuk memahami penggunaan WHERE dibandingkan menuliskan filter langsung pada ON. Sebagai ilustrasinya, kita akan melakukan Left Join untuk data berikut.

SQL

Query untuk melakukan Left Join adalah sebagai berikut.

SQL

Maka, akan diperoleh hasil seperti di bawah ini.

SQL

User dengan id 08 juga termasuk pada hasil karena penggabungan menggunakan Left Join akan tetap menyertakan data pada tabel yang kiri (dalam hal ini users) yang sesuai dengan kondisi WHERE klausa. Lihat bahwa id 08 registrasi pada 16-02-2023 dan sesuai dengan kondisi tanggal yang lebih dari 01-01-2021 meskipun tidak memiliki nilai yang bersesuaian di tabel status.


Bagaimana jika kita melakukan filter tersebut pada ON atau tidak secara spesifik menggunakan WHERE? Berikut query yang bisa dicoba.

SQL

Hasil yang akan kalian peroleh adalah sebagai berikut.

SQL

Left Join akan tetap menghasilkan semua data yang ada pada tabel kiri atau users meskipun logika yang dituliskan dalam ON salah. Sehingga penting untuk kalian perhatikan fungsi ON dan WHERE ketika melakukan JOIN Table SQL pada proses Outer Join.


Baca juga : Catat! Ini 3 Keuntungan Belajar SQL dalam Mengolah Data


4. Yuk, Praktik Join Table dengan Modul DQLab

Join Table tentunya tidak hanya menggunakan klausa WHERE dan ON saja. Masih ada kondisi lainnya yang bisa kalian gunakan seperti RANK, ORDER, HAVING, dan lain sebagainya. Seluruh klausa ini penting untuk kalian ketahui ketika berhadapan dengan Join Table karena hasil yang didapatkan berbeda-beda. Lantas seperti apa detail join table bahkan fungsi-fungsi lainnya? DQLab menjadi salah satu solusi rasa penasaran kalian. 

SQL

Dengan belajar di DQLab kalian akan paham keseluruhan fungsi dari SQL. Untuk kalian yang tidak memiliki background IT pun tidak perlu khawatir karena modul didesain semudah mungkin diikuti oleh siapapun. Segera Sign Up di website dan asah kemampuan SQL kalian!


Penulis : Dita Feby 

Editor : Annissa Widya 

Mulai Karier
sebagai Praktisi
Data Bersama
DQLab

Daftar sekarang dan ambil langkah
pertamamu untuk mengenal
Data Science.

Buat Akun


Atau

Sudah punya akun? Login