Saat bekerja dengan database relasional, hampir tidak mungkin Anda hanya bekerja dengan satu tabel. Anda pasti perlu menggabungkan data dari dua tabel atau lebih. Di MySQL, operasi penggabungan tabel ini dilakukan dengan JOIN. Ada beberapa jenis JOIN yang paling sering digunakan: INNER JOIN, LEFT JOIN, dan RIGHT JOIN. Artikel ini menjelaskan perbedaannya secara praktis dengan contoh nyata.
Persiapan Tabel Contoh
Sebelum membahas perbedaan JOIN, kita siapkan dua tabel sebagai contoh: tabel karyawan dan tabel departemen.
-- Buat tabel departemen
CREATE TABLE departemen (
id_dept INT AUTO_INCREMENT PRIMARY KEY,
nama_dept VARCHAR(100) NOT NULL
) ENGINE=InnoDB;
-- Buat tabel karyawan
CREATE TABLE karyawan (
id_karyawan INT AUTO_INCREMENT PRIMARY KEY,
nama VARCHAR(100) NOT NULL,
id_dept INT,
gaji DECIMAL(10, 2)
) ENGINE=InnoDB;
-- Insert data departemen
INSERT INTO departemen (nama_dept) VALUES
('Engineering'),
('Marketing'),
('HR'),
('Finance');
-- Insert data karyawan (beberapa tidak punya departemen)
INSERT INTO karyawan (nama, id_dept, gaji) VALUES
('Andi', 1, 8000000),
('Budi', 1, 7500000),
('Citra', 2, 6000000),
('Deni', NULL, 5500000),
('Eka', 5, 6500000); -- id_dept 5 tidak ada di tabel departemen
Perhatikan bahwa Deni tidak memiliki departemen (NULL), dan Eka memiliki id_dept yang tidak ada di tabel departemen. Kondisi ini penting untuk memahami perbedaan setiap jenis JOIN.
INNER JOIN – Hanya Data yang Cocok
INNER JOIN mengembalikan baris-baris yang memiliki kecocokan di kedua tabel. Jika salah satu sisi tidak memiliki pasangan, baris tersebut tidak akan muncul di hasil.
-- INNER JOIN: hanya tampilkan karyawan yang punya departemen valid
SELECT
k.nama AS nama_karyawan,
d.nama_dept AS departemen,
k.gaji
FROM karyawan k
INNER JOIN departemen d ON k.id_dept = d.id_dept
ORDER BY k.nama;
Hasil: Hanya Andi, Budi, dan Citra yang muncul. Deni (id_dept NULL) dan Eka (id_dept tidak valid) tidak muncul karena tidak ada kecocokan di tabel departemen.
Artikel ini ditampilkan sebagian. Untuk pembahasan selengkapnya, beserta contoh dan langkah detailnya, Anda dapat membacanya pada sumber aslinya:
Perbedaan INNER JOIN, LEFT JOIN, dan RIGHT JOIN di MySQL
Tutorial pemrograman dan tools developer lainnya juga tersedia di dhiecoderweb.com.
Top comments (0)