MySQL - Union vs Join: Understanding the Difference
Hai, para 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 catatan virtual Anda, dan mari kita masuk ke dalam!
Understanding the Basics
Sebelum kita membanjiri ke dalam khususnya UNION dan JOIN, mari kita mulai dengan sebuah peningkatan cepat 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. Itu memungkinkan kita untuk menggabungkan hasil dari dua atau lebih pernyataan SELECT menjadi satu hasil.
What is JOIN?
JOIN, dari sisi lain, seperti seorang pemaaf. Itu membantu kita menggabungkan baris dari dua atau lebih tabel berdasarkan kolom yang berhubungan antaranya.
Sekarang kita memiliki pengertian dasar, mari kita jelajahi masing-masing dari ini secara lebih rinci.
Working of UNION
UNION digunakan untuk menggabungkan hasil dari dua atau lebih pernyataan SELECT. Ini adalah sintaksis dasar:
SELECT column1, column2, ... FROM table1
UNION
SELECT column1, column2, ... FROM table2;
Mari kita rujuk 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 semua buah dan sayuran. Hasilnya akan tampak 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 sepadan 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.
Ini adalah sintaksis 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 tampak 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 telah menelusuri UNION dan JOIN, Anda mungkin bertanya-tanya kapan menggunakan yang mana. Mari kitauraikan ini:
Use UNION when:
- Anda ingin menggabungkan baris dari tabel yang mirip atau kueri.
- Tabel memiliki struktur yang sama (jumlah dan tipe kolom).
- Anda perlu menghapus duplikat (atau gunakan UNION ALL untuk menjaganya).
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 | Dihapus 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 untuk tujuan yang berbeda. UNION membantu kita menggabungkan data secara vertikal, sedangkan JOIN memungkinkan kita untuk menyatukan data secara horizontal. Sepanjang Anda terus mengembangkan pengetahuan MySQL Anda, Anda akan menemukan banyak situasi di mana operasi ini akan sangat berguna. Tetap latih, dan segera Anda akan menjadi maestro MySQL!
Happy querying, para ahli basis data masa depan!
Credits: Image by storyset