Lewati ke konten utama

SQL INNER JOIN vs. OUTER JOIN: Perbedaan Utama

Pahami SQL INNER JOIN vs. OUTER JOIN dengan contoh dan bantuan visual untuk meningkatkan keterampilan manajemen basis data Anda.
Diperbarui 5 Jun 2026  · 4 mnt baca

Dalam tutorial ini, saya akan menjelaskan perbedaan antara INNER JOIN dan OUTER JOIN di SQL beserta contohnya. Setelah memahami topik ini, Anda mungkin ingin mengikuti kursus kami Joining Data in SQL, yang membahas jenis join lain yang menarik, seperti SELF JOIN dan CROSS JOIN, serta konsep yang lebih luas seperti teori himpunan.

Jawaban Singkat

INNER JOIN hanya mengembalikan baris yang cocok antartabel berdasarkan kolom yang sama, dan mengecualikan baris yang tidak cocok. Misalnya, kueri di bawah ini menampilkan pesanan beserta detail pelanggan hanya jika ada kecocokan.

-- Inner Join: Returns only matching rows from both tables
SELECT o.OrderID, c.CustomerName
FROM Orders o
INNER JOIN Customers c ON o.CustomerID = c.CustomerID;

OUTER JOIN menyertakan baris yang cocok sekaligus baris yang tidak cocok dari satu atau kedua tabel. Kueri di bawah ini mengembalikan semua pelanggan, termasuk yang tidak memiliki pesanan.

-- Left Outer Join: Returns all rows from Customers and matching rows from Orders
SELECT c.CustomerName, o.OrderID
FROM Customers c
LEFT JOIN Orders o ON c.CustomerID = o.CustomerID;

Menelusuri SQL INNER JOIN dan OUTER JOIN

Sekarang, mari kita cermati INNER JOIN dan OUTER JOIN di SQL, satu per satu. Saat membahas masing-masing, perhatikan dua tabel berikut:

Contoh tabel employees.

Contoh tabel employees. Gambar oleh Penulis.

Contoh tabel departments.

Contoh tabel departments. Gambar oleh Penulis.

Cara Kerja INNER JOIN

Sebuah INNER JOIN hanya mengambil baris yang memiliki kecocokan di kedua tabel berdasarkan kondisi yang ditentukan. 

Kueri berikut memilih employee_id, demployee_name, department_name, dan salary lalu mengembalikan baris di mana department_id ada.

-- Example: Get employees with matching departments
SELECT employees.employee_id, employees.employee_name, departments.department_name, employees.salary
FROM employees
INNER JOIN departments
-- Returns only employees assigned to a department
ON employees.department_id = departments.department_id;

Contoh tabel yang digabung menggunakan SQL INNER JOIN.

Contoh tabel yang digabung menggunakan SQL INNER JOIN. Gambar oleh Penulis.

Cara Kerja OUTER JOIN

OUTER JOIN menyertakan baris yang tidak cocok dari satu atau kedua tabel, tergantung pada jenis OUTER JOIN yang digunakan.

LEFT OUTER JOIN (LEFT JOIN)

LEFT OUTER JOIN mengembalikan semua record dari tabel kiri dan record yang cocok dari tabel kanan. Jika tidak ada kecocokan, nilai NULL dikembalikan untuk kolom dari tabel kanan.

Contoh berikut mengambil semua record dari tabel employees, termasuk yang tidak memiliki pasangan. department_name yang hilang untuk karyawan dikembalikan sebagai NULL.

-- Get all employees, even those without a department
SELECT employees.employee_id, employees.employee_name, departments.department_name, employees.salary
FROM employees
LEFT JOIN departments
ON employees.department_id = departments.department_id;

Contoh tabel yang digabung menggunakan SQL left outer join

Contoh tabel yang digabung menggunakan SQL left outer join. Gambar oleh Penulis.

LEFT JOIN dan LEFT OUTER JOIN digunakan secara bergantian di SQL karena keduanya mengambil semua baris dari tabel kiri dan baris yang cocok dari tabel kanan.

RIGHT OUTER JOIN (RIGHT JOIN)

RIGHT OUTER JOIN mengembalikan semua record dari tabel kanan dan record yang cocok dari tabel kiri. Baris yang tidak cocok di tabel kiri akan bernilai NULL.

Kueri di bawah ini mengembalikan semua record dari tabel departments, termasuk yang tidak memiliki karyawan yang cocok.

-- Get all departments, even those without employees
SELECT employees.employee_id, employees.employee_name, departments.department_name, employees.salary
FROM employees
RIGHT JOIN departments
ON employees.department_id = departments.department_id;

Contoh tabel yang digabung menggunakan SQL Right outer join.

Contoh tabel yang digabung menggunakan SQL Right outer join. Gambar oleh Penulis.

FULL OUTER JOIN

FULL OUTER JOIN menggabungkan hasil dari left dan right outer join. Ini mengembalikan semua record dari kedua tabel, dan mengisi dengan NULL jika tidak ada kecocokan.

Kueri di bawah ini mengembalikan semua record untuk tabel employees dan departments, termasuk baris yang tidak cocok.

-- Combine all employees and departments
SELECT employees.employee_id, employees.employee_name, departments.department_name, employees.salary
FROM employees
FULL JOIN departments
ON employees.department_id = departments.department_id;

Contoh tabel yang digabung menggunakan SQL Full outer join.

Contoh tabel yang digabung menggunakan SQL Full outer join. Gambar oleh Penulis.

INNER JOIN vs. OUTER JOIN: Perbedaan Utama

INNER JOIN dan OUTER JOIN secara mendasar berbeda dalam cara menangani baris yang tidak cocok saat menggabungkan tabel. Memahami perbedaan ini penting untuk memilih jenis join yang tepat dalam kueri basis data Anda. Mari bandingkan perbedaannya.

Apa yang dikembalikan oleh INNER JOIN

INNER JOIN hanya mengembalikan baris dengan nilai yang cocok di kedua tabel. Jenis join ini digunakan saat Anda membutuhkan data yang ada di kedua dataset.

Kueri berikut mengambil record dari employees dengan baris yang cocok dari tabel departments.

-- Example: Get employees with matching departments
SELECT employees.employee_id, employees.employee_name, departments.department_name
FROM employees
INNER JOIN departments
-- Returns only employees assigned to a department
ON employees.department_id = departments.department_id;

Contoh tabel yang digabung menggunakan SQL Inner join.

Contoh tabel yang digabung menggunakan SQL INNER JOIN. Gambar oleh Penulis.

Apa yang dikembalikan oleh OUTER JOIN

OUTER JOIN menyertakan baris yang tidak cocok dari satu atau kedua tabel, tergantung pada jenis OUTER JOIN. Misalnya, LEFT OUTER JOIN mengembalikan semua baris dari tabel kiri dan baris yang cocok dari tabel kanan. Baris yang tidak cocok dari tabel kanan akan memiliki nilai NULL.

Kueri berikut mengambil record karyawan, termasuk yang tidak memiliki departemen.

-- Get all employees, even those without a department
SELECT employees.employee_id, employees.employee_name, departments.department_name
FROM employees
LEFT JOIN departments
ON employees.department_id = departments.department_id;

Contoh data yang diambil menggunakan SQL Left outer join.

Contoh data yang diambil menggunakan SQL LEFT OUTER JOIN. Gambar oleh Penulis.

Kapan Menggunakan SQL INNER JOIN dan OUTER JOIN

INNER JOIN dan OUTER JOIN juga berbeda dalam kasus penggunaan praktisnya untuk pengambilan data.

Kapan menggunakan INNER JOIN

INNER JOIN paling efektif saat Anda hanya membutuhkan data irisan dari dua tabel. Misalnya, Anda dapat menggunakan INNER JOIN saat menganalisis data penjualan untuk menemukan produk yang telah terjual, ketika tabel produk dan penjualan memiliki entri yang cocok.

Kapan menggunakan OUTER JOIN

OUTER JOIN tepat digunakan saat Anda perlu mengembalikan dataset lengkap, termasuk baris yang tidak cocok. Misalnya, saat membuat laporan untuk menampilkan semua karyawan, termasuk yang belum memiliki penugasan departemen, atau semua departemen, termasuk yang belum memiliki karyawan.

Kesimpulan

Memahami perbedaan antara INNER JOIN dan OUTER JOIN penting untuk menulis kueri yang efisien. Mempelajari teknik-teknik ini juga membantu meningkatkan optimasi kueri untuk pengambilan data yang lebih cepat. Saya mendorong Anda untuk terus berlatih agar menguasai lebih banyak keterampilan manajemen basis data.

Saya merekomendasikan untuk mencoba jalur karier Associate Data Analyst in SQL kami untuk menjadi analis data yang andal. Kursus Reporting in SQL kami juga akan membantu Anda mahir membangun laporan dan dasbor yang kompleks untuk penyajian data yang efektif. Jika Anda sedang mempersiapkan wawancara yang menuntut penampilan kemampuan SQL, saya sarankan membaca blog kami, 20 Top SQL Joins Interview Questions, untuk membantu persiapan wawancara Anda.


Allan Ouko's photo
Author
Allan Ouko
LinkedIn
Penulis teknis Data Science dengan pengalaman langsung dalam analitik data, business intelligence, dan data science. Saya menulis konten praktis berfokus industri tentang SQL, Python, Power BI, Databricks, dan rekayasa data, yang berakar pada pekerjaan analitik dunia nyata. Tulisan saya menjembatani kedalaman teknis dan dampak bisnis, membantu para profesional mengubah data menjadi keputusan yang meyakinkan.

SQL INNER JOIN dan OUTER JOIN: FAQ

Apa perbedaan antara INNER JOIN dan OUTER JOIN di SQL?

INNER JOIN hanya mengembalikan baris yang cocok dari kedua tabel, sedangkan OUTER JOIN menyertakan baris yang tidak cocok, dengan NULL mengisi celah saat tidak ada data yang bersesuaian.

Kapan saya harus menggunakan INNER JOIN di SQL?

Gunakan INNER JOIN ketika Anda perlu mengambil hanya baris dengan nilai yang cocok di kedua tabel.

Apa saja jenis OUTER JOIN di SQL?

Jenis OUTER JOIN adalah LEFT OUTER JOIN, RIGHT OUTER JOIN, dan FULL OUTER JOIN.

Bagaimana cara kerja LEFT OUTER JOIN di SQL?

Left outer join mengembalikan semua baris dari tabel kiri, baris yang cocok dari tabel kanan, dan baris yang tidak cocok dari tabel kiri.

Apa itu FULL OUTER JOIN di SQL?

FULL OUTER JOIN mengembalikan semua baris dari kedua tabel, termasuk baris yang tidak cocok dari masing-masing tabel.

Topik

Belajar SQL dengan DataCamp

Kursus

Manipulasi Data di SQL

4 Hr
323.6K
Kuasai kueri SQL yang kompleks yang diperlukan untuk menjawab berbagai pertanyaan ilmu data dan menyiapkan set data yang kuat untuk analisis di PostgreSQL.
Lihat DetailRight Arrow
Mulai Kursus
Lihat Lebih BanyakRight Arrow
Terkait

blogs

40 Pertanyaan Wawancara DBMS Teratas di 2026

Kuasai pertanyaan wawancara basis data, dari konsep SQL dasar hingga skenario desain sistem tingkat lanjut. Panduan mendalam ini mencakup semua yang Anda perlukan untuk sukses di wawancara DBMS dan meraih peran berikutnya.
Dario Radečić's photo

Dario Radečić

15 mnt

blogs

Spaghetti Plot dan Jalur Badai

Temukan alasan mengapa Anda sebaiknya (tidak) menggunakan spaghetti plot untuk menyampaikan ketidakpastian jalur prediksi badai serta dampaknya terhadap interpretasi.
Hugo Bowne-Anderson's photo

Hugo Bowne-Anderson

13 mnt

blogs

Tutorial Korelasi di R

Dapatkan pengenalan dasar-dasar korelasi di R: pelajari lebih lanjut tentang koefisien korelasi, matriks korelasi, plotting korelasi, dan sebagainya.
David Woods's photo

David Woods

13 mnt

blogs

12 Alternatif ChatGPT Terbaik yang Bisa Anda Coba pada 2026

Artikel ini menyajikan daftar alternatif ChatGPT yang akan meningkatkan produktivitas Anda.
Javier Canales Luna's photo

Javier Canales Luna

14 mnt

Lihat Lebih BanyakLihat Lebih Banyak