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

Join Multiple Table SQL, INNER JOIN & LEFT JOIN

Belajar Data Science di Rumah 12-Desember-2022
https://dqlab.id/files/dqlab/cache/dee8eab70844c184660c7d375bba7f51_x_Thumbnail800.jpeg

SQL (Structured Query Language) merupakan salah satu bahasa pemrograman yang wajib dikuasai oleh praktisi data. Pasalnya, pekerjaan seorang praktisi data tentu tidak akan jauh-jauh dari database. Nah untuk bisa mengakses segala sesuatu yang berhubungan dengan database kita membutuhkan bahasa SQL. Sehingga tidak heran, hampir semua lowongan pekerjaan yang dibuka untuk posisi praktisi data, pasti kualifikasi nya harus menguasai bahasa SQL.


Dalam SQL, kita akan sering bertemu dengan masalah yang jawabannya bisa didapatkan dari beberapa database. Kita bisa menggunakan teknik join table atau penggabungan table yang ada di database. Hingga saat ini, ada 4 jenis join table yang bisa digunakan, yaitu INNER JOIN, LEFT JOIN, RIGHT JOIN, dan OUTER/FULL JOIN. Jika selama ini kita hanya membahas mengenai cara menggabungkan dua tabel saja, maka tentu akan menjadi pertanyaan apakah kita bisa menggabungkan lebih dari dua tabel atau tidak? Jawabannya tentu saja bisa. 


Dalam artikel ini, kita akan membahas cara join lebih dari dua tabel dengan menggunakan INNER JOIN, LEFT JOIN, dan kombinasi kedua join tersebut. Penasaran? Yuk, simak pembahasannya!


1. Mengapa Kita Membutuhkan SQL Join Table?

Pada umumnya, setiap table yang ada di database hanya akan berisi satu topik saja. Misalkan table employee, maka hanya akan berisi hal-hal yang berhubungan dengan employee, seperti nama, alamat, dll. Table customer, maka hanya akan berisi hal-hal yang berkaitan dengan customer, seperti id customer, nama, kapan pembelian pertamanya, berapa banyak pengeluaran yang dilakukan, dan masih banyak lagi.


Dalam pekerjaan seorang praktisi data, banyak hal yang tidak pernah dipikirkan akan terjadi. Misalkan kita butuh informasi mengenai siapa employee yang melayani customer dengan pembelian terbanyak pada product yang sedang promo untuk diberikan hadiah, maka kita harus menggabungkan data yang ada pada table customer, table product, dan juga table employee. Dengan memanfaatkan fitur SQL Join Table inilah, kita bisa mendapatkan data yang “rich” sehingga jawaban pertanyaan yang dibutuhkan bisa didapatkan dengan mudah.


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


2. Join Multiple Tabel dengan Menggunakan INNER JOIN

SQL


Misalkan kita ingin menampilkan semua negara dan pelanggan yang terkait dengan negara-negara tersebut. Untuk setiap negara, kita harus menampilkan nama negara tersebut sesuai dengan ejaan Bahasa Inggris. Kita juga butuh untuk menampilkan nama kota tempat pelanggan berada serta nama pelanggan tersebut. 


Untuk lebih jelasnya, berikut adalah data dari ketiga table tersebut:


SQL


Karena kita akan menggabungkan lebih dari dua table, maka untuk query nya juga harus menggunakan dua perintah join, dalam hal ini kita menggunakan query INNER JOIN. Berikut adalah query yang bisa digunakan:

SELECT country.country_name_eng, city.city_name, customer.customer_name

FROM country

INNER JOIN city ON city.country_id = country.id

INNER JOIN customer ON customer.city_id = city.id;

Maka hasilnya adalah:

SQL


Dari table yang ada di atas, kita bisa melihat bahwa table City dan juga Country memiliki data yang isinya lebih dari 4, namun di akhir hasilnya hanya ada 4 rows data. Hal ini disebabkan karena kita menggunakan INNER JOIN, dimana yang akan menjadi result nya hanyalah data yang sama antara semua table saja. Dengan kata lain, semua Country dan City yang tidak memiliki data customer akan dihilangkan.


3. Join Multiple Tabel dengan Menggunakan LEFT JOIN

Dengan menggunakan studi kasus yang sama dengan sebelumnya, kita akan coba membandingkan ketika kita join lebih dari dua table menggunakan LEFT JOIN. Berikut adalah query yang bisa digunakan:

SELECT country.country_name_eng, city.city_name, customer.customer_name

FROM country

LEFT JOIN city ON city.country_id = country.id

LEFT JOIN customer ON customer.city_id = city.id;

Dari query ini, kita bisa melihat bahwa penggabungan table akan dimulai dari country ke city, barulah hasil dari keduanya digabungkan ke table customer. Sehingga hasilnya adalah:

SQL

Dari sini kita bisa melihat bahwa table country ditampilkan semua datanya, sementara table lainnya hanya akan menyesuaikan table country.


Ketika tadi di INNER JOIN, kita tidak perlu memperhatikan urutan penulisan table karena yang ditampilkan hanya lah data yang sama, sehingga urutan table tidak akan berpengaruh. Sementara ketika kita menggunakan LEFT JOIN atau RIGHT JOIN, urutan penulisan table akan sangat berpengaruh pada hasilnya. Coba kita bandingkan dengan urutan query berikut:

SELECT country.country_name_eng, city.city_name, customer.customer_name

FROM customer

LEFT JOIN city ON customer.city_id = city.id

LEFT JOIN country ON city.country_id = country.id;

Dari query di atas, kita akan memulai join table dari table customer yang dijoin dengan table city, baru kemudian di join lagi dengan table country. Dengan kata lain, result nya akan menyesuaikan table customer. Berikut adalah hasilnya:


SQL


Dari sini kita bisa melihat bahwa hanya ada 4 rows data, dimana semua data yang ada di table customer dimunculkan dan table lainnya akan menyesuaikan dengan table customer.


4. Join Multiple Tabel dengan Menggunakan Kombinasi INNER JOIN & LEFT JOIN 

Tidak hanya bisa menggunakan jenis join yang sama, kita juga bisa mengkombinasikan beberapa jenis join data. Dengan tetap menggunakan data dan studi kasus yang sama, misalkan kali ini, kita akan menggabungkan INNER JOIN dan LEFT JOIN. Berikut adalah query yang bisa digunakan:

SELECT country.country_name_eng, city.city_name, customer.customer_name

FROM country

INNER JOIN city ON city.country_id = country.id

LEFT JOIN customer ON customer.city_id = city.id;

Dari query ini, kita bisa melihat bahwa antara table country dengan table city hanya akan dimunculkan data yang sama saja, kemudian hasil dari penggabungan tersebut akan dimunculkan semua sementara table customer akan mengikut. Berikut adalah hasilnya:


SQL


Kita bisa melihat bahwa data-data NULL yang ada di customer name disebabkan karena data tersebut memang tidak ada isinya di table customer, namun karena menyesuaikan hasil INNER JOIN dari table country dan city, itulah mengapa rows yang NULL tetap dimunculkan.


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


SQL menjadi hal yang sangat wajib untuk dikuasai oleh praktisi data. Hampir semua pekerjaan seorang praktisi data pasti akan melibatkan proses query pada database, sehingga meskipun tidak begitu advanced menguasai SQL, setidaknya kita bisa menguasai hal-hal fundamentalnya terlebih dahulu.


Eits, kamu gak perlu bingung harus belajar SQL dimana karena DQLab juga menyediakan modul SQL yang sangat cocok bagi pemula karena membahas hal-hal yang bersifat fundamental. Agar bisa mengaksesnya, kamu cukup berlangganan untuk menjadi member premium di DQLab


Yuk, tunggu apa lagi? Sekarang giliran mu!

Penulis: Gifa Delyani Nursyafitri



Mulai Karier
sebagai Praktisi
Data Bersama
DQLab

Daftar sekarang dan ambil langkah
pertamamu untuk mengenal
Data Science.

Buat Akun


Atau

Sudah punya akun? Login