SQL - UNION vs JOIN: Panduan Komprehensif untuk Pemula
Hai teman-teman pecinta SQL yang bersemangat! Saya sangat senang menjadi panduan Anda dalam perjalanan menarik melalui dunia SQL. Hari ini, kita akan membongkar misteri UNION dan JOIN, dua operasi SQL yang kuat dan mungkin terlihat membingungkan pada awalnya, tapi akan segera menjadi teman terbaik Anda dalam manipulasi data. Jadi, ambil secangkir kopi, duduk nyaman, dan mari kita masuk ke dalam!
Memahami Dasar-Dasar
Sebelum kita mendalami keintrik UNION dan JOIN, mari kita mulai dengan analogi sederhana. Bayangkan Anda mengatur sebuah pesta, dan Anda punya dua daftar tamu: satu untuk teman-teman Anda dan lainnya untuk keluarga Anda. Sekarang, Anda punya dua pilihan:
- Gabungkan kedua daftar menjadi satu daftar besar (itu seperti UNION)
- Temukan siapa di antara teman-teman Anda yang juga berkerabat dengan Anda (itu seperti JOIN)
Menarik, kan? Bagus! Mari kita jelajahi operasi ini secara detil.
Kerja UNION
Apa Itu UNION?
UNION adalah seperti seorang master pembuat daftar di SQL. Itu mengambil dua atau lebih pernyataan SELECT dan menggabungkan hasilnya menjadi satu set hasil. Itu sempurna saat Anda ingin menggabungkan data dari tabel yang berbeda yang memiliki struktur yang mirip.
UNION dalam Aksi
mari kita anggap kita punya 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;
Query ini akan memberikan kita daftar gabungan semua karyawan dari kantor USA dan UK. Keren, kan?
UNION ALL: Saudara Termasuk
Apa bila kita ingin termasuk entri duplikat? Itu di mana UNION ALL berguna.
SELECT product_name, category
FROM products_2021
UNION ALL
SELECT product_name, category
FROM products_2022;
Query ini akan menampilkan semua produk dari tahun 2021 dan 2022, termasuk duplikat jika produk tersebut tersedia di kedua tahun.
Titik Penting untuk Diingat
- UNION menghapus baris duplikat secara default
- UNION ALL menyertakan semua baris, termasuk duplikat
- Jumlah dan urutan kolom harus sama dalam semua pernyataan SELECT
- Tipe data kolom yang sesuai harus kompatibel
Kerja JOIN
Apa Itu JOIN?
Jika UNION adalah pembuat daftar, JOIN adalah seperti penemu pasangan. Itu menggabungkan baris dari dua atau lebih tabel berdasarkan kolom yang berhubungan antaranya. Itu sempurna saat Anda ingin mengambil data yang tersebar di beberapa tabel.
Jenis JOIN
Mari kitauraikan jenis JOIN yang berbeda menggunakan analogi yang menyenangkan. Bayangkan Anda di sebuah pesta tari:
- INNER JOIN: Hanya pasangkan penari yang keduanya tahu tari yang sama
- LEFT JOIN: Pasangkan semua penari dari sisi kiri, bahkan jika mereka tidak punya pasangan
- RIGHT JOIN: Pasangkan semua penari dari sisi kanan, bahkan jika mereka tidak punya pasangan
- FULL JOIN: Pasangkan semua penari, bahkan jika beberapa akhirnya menari sendiri
JOIN dalam Aksi
Lihatlah bagaimana JOIN ini bekerja dalam query SQL nyata:
INNER JOIN
SELECT customers.name, orders.order_date
FROM customers
INNER JOIN orders ON customers.id = orders.customer_id;
Query ini akan menampilkan semua pelanggan yang memesan, bersama dengan tanggal pesanan mereka.
LEFT JOIN
SELECT employees.name, departments.dept_name
FROM employees
LEFT JOIN departments ON employees.dept_id = departments.id;
Query ini akan menampilkan semua karyawan, bahkan mereka yang tidak diassign ke departemen manapun.
RIGHT JOIN
SELECT products.name, categories.category_name
FROM products
RIGHT JOIN categories ON products.category_id = categories.id;
Query ini akan menampilkan semua kategori, bahkan jika tidak ada produk yang ada di sana.
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;
Query ini akan menampilkan semua murid dan semua kursus, bahkan jika beberapa murid belum mendaftar di kursus manapun atau beberapa kursus belum memiliki murid.
UNION vs JOIN: Pertandingan
Sekarang kita telah menelusuri UNION dan JOIN, mari kita bandingkan mereka bersamaan:
Aspek | UNION | JOIN |
---|---|---|
Tujuan | Menggabungkan baris dari tabel yang mirip | Menggabungkan kolom dari tabel yang berhubungan |
Hasil | Kombinasi vertikal (lebih banyak baris) | Kombinasi horizontal (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 lambat untuk join yang kompleks |
Use Case | Menggabungkan data yang mirip dari sumber berbeda | Mengambil data yang terkait 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 saat Anda ingin menggabungkan data yang mirip dari tabel berbeda ke dalam satu daftar.
- Gunakan JOIN saat Anda ingin mengambil data yang tersebar di beberapa tabel.
Ingat, seperti memilih alat yang tepat untuk pekerjaan, memilih antara UNION dan JOIN tergantung pada kebutuhan data Anda. Dengan praktik, Anda akan mengembangkan直觉 untuk memilih yang mana untuk digunakan dalam berbagai situasi.
Saya berharap panduan ini telah membantu Anda untuk memahami UNION dan JOIN. Teruslatih, tetap kurios, dan sebelum Anda tahu, Anda akan menari melalui query SQL seperti seorang ahli! Selamat coding!
Credits: Image by storyset