Bergabunglah dengan Tiga Tabel di SQL

Bergabunglah Dengan Tiga Tabel Di Sql



Dalam database relasional, tugas mengambil data dari beberapa tabel sangatlah umum. Bergantung pada hasil target, hal ini melibatkan penggabungan beberapa tabel menjadi satu unit dan mengambil data yang dihasilkan.

Dalam hal penggabungan, kebanyakan dari kita bekerja dengan batasan dua tabel dan semacamnya. Namun, biasanya diperlukan penggabungan tiga tabel untuk mendapatkan tata letak dan wawasan data yang lebih bermakna. Ambil contoh saat Anda ingin mengambil daftar film, inventaris persewaan terkait, dan detail persewaan sebenarnya. Masing-masing unit seperti film, inventaris, dan detail persewaan ada di tabel tersendiri.

Dalam tutorial ini, kami akan memandu Anda melalui berbagai gabungan dan teknik yang dapat Anda gunakan untuk menggabungkan tiga tabel di SQL.







Persyaratan:

Untuk tujuan demonstrasi, kami akan menggunakan MySQL versi 80 dan contoh database Sakila. Untuk mengikutinya, Anda dapat mengunduh dan mengatur database Sakila di server MySQL Anda. Jangan ragu untuk menggunakan kumpulan data lain yang Anda anggap dapat diterapkan.



Jenis Gabungan di SQL

Sebelum kita masuk ke penerapan join, mari kita mulai dengan membahas berbagai jenis join yang tersedia di database SQL.



GABUNG DALAM

Jenis join yang pertama adalah INNER JOIN. Jenis gabungan ini hanya mengembalikan baris yang berisi nilai yang cocok di kedua tabel. Ini adalah jenis penggabungan yang sangat umum dan paling sederhana ketika menggabungkan dua tabel.





Sintaksnya adalah sebagai berikut:

PILIH kolom

DARI tabel1

INNER JOIN tabel2 PADA table1.column_name = table2.column_name;

KIRI GABUNG

Dalam kasus LEFT JOIN, ia mengembalikan semua baris dari tabel kiri dan baris yang cocok dari tabel kanan. Jika tidak ada nilai yang cocok dari tabel kanan, gabungan akan menambahkan nilai NULL sebagai gantinya.



Sintaksnya adalah sebagai berikut:

PILIH kolom

DARI tabel1

KIRI GABUNG tabel2 PADA table1.column_name = table2.column_name;

BENAR BERGABUNG

Seperti yang bisa Anda tebak, RIGHT JOIN adalah kebalikan dari LEFT JOIN. Jenis gabungan ini mengembalikan semua baris dari tabel kanan dan hanya baris yang cocok dari tabel kiri. Jika tidak ada baris yang cocok di tabel kiri, gabungan akan menambahkan nilai NULL ke dalamnya.

Berikut ini adalah sintaks dari RIGHT JOIN:

PILIH kolom

DARI tabel1

KANAN GABUNG tabel2 PADA table1.column_name = table2.column_name;

GABUNG LUAR LENGKAP

Jenis join berikutnya yang akan Anda temui di database SQL adalah FULL OUTER JOIN. Jenis gabungan ini mengembalikan semua baris ketika ada kecocokan di tabel kanan atau kiri. Jika tidak ada nilai yang cocok di salah satu dari keduanya, ia mengembalikan NULL untuk kolom dari tabel tanpa kecocokan.

Berikut ini menunjukkan sintaks dari FULL OUTER JOIN:

PILIH kolom

DARI tabel1

Tabel OUTER JOIN LENGKAP2 PADA table1.column_name = table2.column_name;

Perlu diingat bahwa tidak semua mesin database mendukung FULL OUTER JOINS. Untuk mencapai hal tersebut, Anda mungkin perlu bekerja dengan tipe GABUNG atau subkueri lainnya.

Contoh:

Mari kita jelajahi beberapa contoh tentang bagaimana kita dapat menggunakan jenis gabungan ini untuk menggabungkan tiga tabel di SQL.

Contoh 1: Menggunakan INNER JOIN

Kita mulai dengan INNER JOIN. Misalkan kita ingin mengambil daftar film, inventaris persewaan, dan detail persewaan yang sesuai.

Kita dapat menggunakan beberapa INNER JOINS pada tabel terkait seperti yang ditunjukkan pada contoh berikut:

PILIH

film.judul,

inventaris.inventory_id,

sewa.rental_date

DARI

film

inventaris INNER JOIN PADA

film.film_id = inventaris.film_id

Penyewaan INNER JOIN PADA

inventory.inventory_id = sewa.inventory_id;

Dalam contoh kueri yang diberikan, kita mulai dengan menggabungkan tabel film dan inventaris berdasarkan kolom “film_id”. Kami kemudian mengambil set yang dihasilkan dan menggabungkannya dengan tabel rental berdasarkan kolom “inventory_id”.

Ini memastikan bahwa kita menggabungkan tiga tabel dengan INNER JOIN dasar. Himpunan yang dihasilkan adalah sebagai berikut:

Contoh 2: Menggunakan INNER JOIN dan LEFT JOIN

Katakanlah sekarang kita menginginkan daftar film, daftar inventaris persewaan (jika ada), dan detail persewaan terkait.

Kami juga ingin memastikan bahwa meskipun sebuah film tidak memiliki inventaris rental, kami tetap menyertakannya dalam hasil. Di sinilah INNER JOIN dan LEFT JOIN berperan.

Perhatikan contoh berikut:

PILIH

film.judul,

inventaris.inventory_id,

sewa.rental_date

DARI

film

inventaris INNER JOIN PADA

film.film_id = inventaris.film_id

KIRI BERGABUNG sewa PADA

inventory.inventory_id = sewa.inventory_id;

Dalam contoh ini, kami menggunakan INNER JOIN untuk menggabungkan tabel film dan inventaris untuk memastikan bahwa kami mendapatkan judul dengan inventaris yang tersedia. Kami kemudian menggunakan LEFT JOIN untuk bergabung dengan tabel rental guna mengambil detail rental jika tersedia dan NULL untuk judul apa pun yang tidak memiliki riwayat rental.

Himpunan yang dihasilkan adalah sebagai berikut:

Kesimpulan

Dalam tutorial ini, kita belajar tentang berbagai tipe JOINS di SQL, cara kerjanya, dan bagaimana kita dapat menggunakannya untuk menggabungkan tiga tabel.