MySQL - Union vs Join: Understanding the Difference
Hai, penggemar basis data yang bersemangat! Hari ini, kita akan memulai perjalanan yang menarik melalui dunia MySQL, mengembangkan dua alat kuat dalam kotak alat basis data kita: UNION dan JOIN. Sebagai guru komputer tetangga yang ramah, saya di sini untuk mengarahkan Anda melalui konsep ini dengan penjelasan yang jelas dan banyak contoh. Jadi, ambil notepad virtual Anda, dan mari kita masuk ke dalamnya!
Understanding the Basics
Sebelum kita masuk ke dalam khususnya UNION dan JOIN, mari kita mulai dengan refresh singkat tentang apa yang dilakukan operasi ini di MySQL.
What is UNION?
UNION seperti seorang chef utama yang menggabungkan bahan-bahan dari resep yang berbeda menjadi satu hidangan yang lezat. Ini memungkinkan kita untuk menggabungkan hasil dari dua atau lebih pernyataan SELECT menjadi satu hasil.
What is JOIN?
JOIN, dari sisi lain, lebih seperti seorang perawan. Itu membantu kita menggabungkan baris dari dua atau lebih tabel berdasarkan kolom yang berhubungan antaranya.
Sekarang kita sudah memahami dasar-dasar, mari kita jelajahi masing-masing ini secara detil.
Working of UNION
UNION digunakan untuk menggabungkan hasil dari dua atau lebih pernyataan SELECT. Berikut adalah sintaks dasar:
SELECT column1, column2, ... FROM table1
UNION
SELECT column1, column2, ... FROM table2;
Mari kitauraikan ini dengan contoh. Bayangkan kita memiliki dua tabel: fruits
dan vegetables
.
-- Create and populate the fruits table
CREATE TABLE fruits (
id INT PRIMARY KEY,
name VARCHAR(50),
color VARCHAR(20)
);
INSERT INTO fruits VALUES
(1, 'Apple', 'Red'),
(2, 'Banana', 'Yellow'),
(3, 'Grape', 'Purple');
-- Create and populate the vegetables table
CREATE TABLE vegetables (
id INT PRIMARY KEY,
name VARCHAR(50),
color VARCHAR(20)
);
INSERT INTO vegetables VALUES
(1, 'Carrot', 'Orange'),
(2, 'Broccoli', 'Green'),
(3, 'Eggplant', 'Purple');
-- Now, let's use UNION to combine these tables
SELECT name, color FROM fruits
UNION
SELECT name, color FROM vegetables;
Kueri ini akan memberikan kita daftar gabungan buah dan sayuran. Hasilnya akan terlihat seperti ini:
name | color |
---|---|
Apple | Red |
Banana | Yellow |
Grape | Purple |
Carrot | Orange |
Broccoli | Green |
Eggplant | Purple |
Catatan bahwa UNION secara default menghapus baris duplikat. Jika Anda ingin menjaga duplikat, Anda dapat menggunakan UNION ALL saja.
Key Points about UNION:
- Jumlah dan urutan kolom harus sama dalam semua pernyataan SELECT.
- Tipe data kolom yang sesuai harus kompatibel.
- Secara default, UNION menghapus baris duplikat. Gunakan UNION ALL untuk menjaga duplikat.
Working of JOIN
JOIN digunakan untuk menggabungkan baris dari dua atau lebih tabel berdasarkan kolom yang berhubungan antaranya. Ada beberapa jenis JOIN, tapi kita akan fokus pada yang paling umum: INNER JOIN.
Berikut adalah sintaks dasar:
SELECT column1, column2, ...
FROM table1
INNER JOIN table2
ON table1.column_name = table2.column_name;
Mari kita ilustrasikan ini dengan contoh. Bayangkan kita memiliki dua tabel: customers
dan orders
.
-- Create and populate the customers table
CREATE TABLE customers (
customer_id INT PRIMARY KEY,
customer_name VARCHAR(50),
city VARCHAR(50)
);
INSERT INTO customers VALUES
(1, 'John Doe', 'New York'),
(2, 'Jane Smith', 'Los Angeles'),
(3, 'Bob Johnson', 'Chicago');
-- Create and populate the orders table
CREATE TABLE orders (
order_id INT PRIMARY KEY,
customer_id INT,
product VARCHAR(50),
amount DECIMAL(10, 2)
);
INSERT INTO orders VALUES
(101, 1, 'Laptop', 999.99),
(102, 2, 'Smartphone', 599.99),
(103, 1, 'Tablet', 299.99);
-- Now, let's use JOIN to combine these tables
SELECT c.customer_name, o.product, o.amount
FROM customers c
INNER JOIN orders o
ON c.customer_id = o.customer_id;
Kueri ini akan memberikan kita daftar pelanggan dan pesanan mereka. Hasilnya akan terlihat seperti ini:
customer_name | product | amount |
---|---|---|
John Doe | Laptop | 999.99 |
John Doe | Tablet | 299.99 |
Jane Smith | Smartphone | 599.99 |
Key Points about JOIN:
- JOIN menggabungkan baris dari tabel yang berbeda berdasarkan kolom yang berhubungan antaranya.
- Klause ON menentukan kondisi untuk menggabungkan tabel.
- Ada jenis JOIN yang berbeda (INNER, LEFT, RIGHT, FULL), masing-masing dengan perilaku yang berbeda.
UNION vs JOIN: When to Use Which?
Sekarang kita sudah mengeksplor UNION dan JOIN, Anda mungkin berpikir kapan harus menggunakan yang mana. Mari kitauraikan ini:
Use UNION when:
- Anda ingin menggabungkan baris dari tabel yang sama atau query.
- Tabel memiliki struktur yang sama (jumlah dan tipe data kolom).
- Anda perlu menghapus duplikat (atau gunakan UNION ALL untuk menjaga mereka).
Use JOIN when:
- Anda ingin menggabungkan kolom dari tabel yang berbeda.
- Ada hubungan logis antara tabel.
- Anda perlu mengambil data yang melintasi beberapa tabel.
Berikut adalah tabel perbandingan praktis:
Feature | UNION | JOIN |
---|---|---|
Purpose | Menggabungkan baris | Menggabungkan kolom |
Table Structure | Harus mirip | Bisa berbeda |
Result | Kombinasi vertikal | Kombinasi horizontal |
Duplicate Handling | Menghapus secara default (UNION ALL menjaga) | Bergantung pada jenis JOIN |
Performance | Biasanya lebih cepat untuk dataset besar | Dapat lebih lambat untuk JOIN yang kompleks |
Ingat, memilih antara UNION dan JOIN tergantung pada struktur data khusus Anda dan hasil yang Anda inginkan. Latih dengan berbagai jenis scenario untuk mendapatkan rasa kapan menggunakan yang mana.
Dalam kesimpulan, UNION dan JOIN adalah alat kuat di MySQL, masing-masing melayani tujuan yang berbeda. UNION membantu kita menggabungkan data secara vertikal, sedangkan JOIN memungkinkan kita untuk menyatukan data secara horizontal. Sepanjang perjalanan MySQL Anda, Anda akan menemukan banyak situasi di mana operasi ini akan sangat berguna. Tetap latih, dan segera Anda akan menjadi maestro MySQL!
Selamat menanyakan, para ahli basis data masa depan!
Credits: Image by storyset