SQL - UNION vs JOIN: Panduan Lengkap untuk Pemula

Hai sana, para penggemar SQL yang sedang berkembang! Saya sangat senang menjadi panduanmu dalam perjalanan menarik melalui dunia SQL. Hari ini, kita akan membongkar misteri UNION dan JOIN, dua operasi SQL yang kuat dan mungkin tampak membingungkan pada awalnya, tapi akan segera menjadi teman terbaikmu dalam manipulasi data. Jadi, ambil secangkir kopi, duduk nyaman, dan mari kita masuk ke dalamnya!

SQL - Union vs Join

Memahami dasar-dasar

Sebelum kita mendalamkan diskusi tentang UNION dan JOIN, mari kita mulai dengan analogi sederhana. Bayangkan Anda mengatur sebuah pesta, dan Anda memiliki dua daftar tamu: satu untuk teman-temanmu dan yang lainnya untuk keluargamu. Sekarang, Anda memiliki dua pilihan:

  1. Kombinasikan kedua daftar menjadi satu daftar besar (itu seperti UNION)
  2. Temukan siapa di antara teman-temanmu yang juga berhubungan dengamu (itu seperti JOIN)

Menarik, kan? Bagus! mari kita jelajahi setiap operasi ini secara detil.

Kerja UNION

Apa itu UNION?

UNION mirip seperti seorang master pembuat daftar dalam SQL. Itu mengambil dua atau lebih pernyataan SELECT dan menggabungkan hasilnya menjadi satu set hasil. Itu sempurna ketika Anda ingin menggabungkan data dari tabel yang berbeda yang memiliki struktur yang sama.

UNION dalam Aksi

Misalnya kita memiliki dua tabel: employees_usa dan employees_uk. Kita ingin mendapatkan daftar semua karyawan, tanpa memandang lokasi mereka.

SELECT first_name, last_name, country
FROM employees_usa
UNION
SELECT first_name, last_name, country
FROM employees_uk;

Kueri ini akan memberikan kita daftar gabungan semua karyawan dari kantor USA dan UK. Keren, kan?

UNION ALL: Saudara yang Inklusif

Sekarang, apa bila kita ingin menyertakan entri duplikat? Itu di mana UNION ALL berguna.

SELECT product_name, category
FROM products_2021
UNION ALL
SELECT product_name, category
FROM products_2022;

Kueri ini akan menampilkan semua produk dari tahun 2021 dan 2022, termasuk duplikat jika sebuah produk tersedia di kedua tahun.

Titik Penting untuk Diingat

  1. UNION secara default menghapus baris duplikat
  2. UNION ALL menyertakan semua baris, termasuk duplikat
  3. Jumlah dan urutan kolom harus sama dalam semua pernyataan SELECT
  4. Tipe data kolom yang sesuai harus kompatibel

Kerja JOIN

Apa itu JOIN?

Jika UNION adalah pembuat daftar, JOIN mirip seperti penghubung. Itu menggabungkan baris dari dua atau lebih tabel berdasarkan kolom yang berhubungan antaranya. Itu sempurna ketika Anda ingin mengambil data yang tersebar di beberapa tabel.

Jenis JOIN

mari kitauraikan jenis JOIN yang berbeda menggunakan analogi menyenangkan. Bayangkan Anda di sebuah pesta tari:

  1. INNER JOIN: Hanya pasangan penari yang keduanya tahu tari yang sama
  2. LEFT JOIN: Pasangkan semua penari dari sisi kiri, bahkan jika mereka tidak memiliki pasangan
  3. RIGHT JOIN: Pasangkan semua penari dari sisi kanan, bahkan jika mereka tidak memiliki pasangan
  4. FULL JOIN: Pasangkan semua penari, bahkan jika beberapa akhirnya menari sendiri

JOIN dalam Aksi

mari kita lihat bagaimana JOIN ini bekerja dalam kueri SQL nyata:

INNER JOIN

SELECT customers.name, orders.order_date
FROM customers
INNER JOIN orders ON customers.id = orders.customer_id;

Kueri ini akan menampilkan semua pelanggan yang memesan, beserta tanggal pemesanan mereka.

LEFT JOIN

SELECT employees.name, departments.dept_name
FROM employees
LEFT JOIN departments ON employees.dept_id = departments.id;

Kueri ini akan daftar semua karyawan, bahkan mereka yang tidak ditugaskan ke departemen manapun.

RIGHT JOIN

SELECT products.name, categories.category_name
FROM products
RIGHT JOIN categories ON products.category_id = categories.id;

Kueri ini akan menampilkan semua kategori, bahkan mereka yang tidak memiliki produk apa pun.

FULL JOIN

SELECT students.name, courses.course_name
FROM students
FULL JOIN enrollments ON students.id = enrollments.student_id
FULL JOIN courses ON enrollments.course_id = courses.id;

Kueri ini akan daftar semua murid dan semua mata kuliah, bahkan jika beberapa murid belum mendaftar dalam mata kuliah apa pun atau beberapa mata kuliah belum memiliki murid.

UNION vs JOIN: Pertandingan

Sekarang kita telah menjelajahi UNION dan JOIN, mari kita bandingkan mereka secara bersamaan:

Aspek UNION JOIN
Tujuan Menggabungkan baris dari tabel yang sama Menggabungkan kolom dari tabel yang berhubungan
Hasil Kombinasi vertikal (lebih banyak baris) Kombinasi horisontal (lebih banyak kolom)
Struktur Tabel Harus memiliki jumlah kolom yang sama Dapat memiliki jumlah kolom yang berbeda
Penanganan Duplikat Menghapus duplikat (kecuali UNION ALL) Menyertakan semua baris yang cocok
Kinerja Biasanya lebih cepat untuk dataset besar Dapat lebih lambat untuk join yang kompleks
Use Case Menggabungkan data yang mirip dari sumber berbeda Mengambil data yang terhubung di antara tabel

Kesimpulan: Memilih antara UNION dan JOIN

Maka, kapan Anda harus menggunakan UNION, dan kapan Anda memilih JOIN? Ini adalah aturan sederhana:

  • Gunakan UNION ketika Anda ingin menggabungkan data yang mirip dari tabel yang berbeda ke dalam satu daftar.
  • Gunakan JOIN ketika Anda ingin mengambil data yang terhubung di antara tabel.

Ingat, seperti memilih alat yang tepat untuk pekerjaan, memilih antara UNION dan JOIN tergantung pada kebutuhan data khusus Anda. Dengan latihan, Anda akan mengembangkan直觉 untuk memilih yang mana untuk digunakan dalam berbagai situasi.

Saya berharap panduan ini telah membantu Anda memahami UNION dan JOIN. Terus latih, tetap bersemangat, dan sebelum Anda sadari, Anda akan menari melalui kueri SQL seperti seorang ahli! Selamat coding!

Credits: Image by storyset