School of Information Systems

Memahami Jenis-Jenis Join dalam SQL

Dalam pengolahan database, menggabungkan data dari beberapa tabel adalah kebutuhan yang sangat umum. Operasi ini dikenal dengan istilah join, yang memungkinkan kita mengkombinasikan baris-baris data berdasarkan relasi tertentu antar tabel.  

Ada berbagai jenis join, masing-masing dengan karakteristik dan kegunaan yang berbeda. Beberapa join mengembalikan hanya data yang memiliki kecocokan di kedua tabel, sementara yang lain mempertahankan semua data dari satu tabel meskipun tidak ada relasi. Memilih jenis join yang tepat sangat memengaruhi keakuratan dan kecepatan query. 

Artikel ini akan membahas jenis-jenis join utama dalam SQL, mulai dari INNER JOIN, LEFT JOIN, RIGHT JOIN, hingga CROSS JOIN dan SELF JOIN 

 

  • INNER JOIN (Equijoin) 

Mengembalikan baris yang memiliki nilai yang cocok di kedua tabel. Inner join digunakan ketika hanya data yang terkait di kedua tabel yang diperlukan. Contoh: Menggabungkan tabel orders dan customers untuk melihat pesanan beserta detail pelanggan. 

Gambar 1. Inner Join Visualization 

 Sintaks SQL: 

SELECT A.kolom1, B.kolom2 

FROM TabelA A 

INNER JOIN TabelB B ON A.kunci = B.kunci; 

 

  • LEFT JOIN (LEFT OUTER JOIN) 

Mengembalikan semua baris dari tabel kiri (tabel pertama) dan baris yang cocok dari tabel kanan. Jika tidak ada kecocokan, hasilnya NULL. Left Join berguna ketika ingin mempertahankan semua data dari tabel utama meskipun tidak ada relasi. Contoh: Menampilkan semua pelanggan (customers) termasuk yang belum pernah memesan (orders). 

 

Gambar 2. Left Outer Join Visualization 

Sintaks SQL: 

SELECT A.kolom1, B.kolom2 

FROM TabelA A 

LEFT JOIN TabelB B ON A.kunci = B.kunci; 

 

  • RIGHT JOIN (RIGHT OUTER JOIN) 

Kebalikan dari LEFT JOIN, mengembalikan semua baris dari tabel kanan dan baris yang cocok dari tabel kiri. Jika tidak ada kecocokan, hasilnya NULL. Right Join berguna ketika ingin memastikan semua data dari tabel sekunder muncul. Contoh: Menampilkan semua produk (products) termasuk yang belum pernah dipesan (order_details). 

Gambar 3. Right Outer Join Visualizaition 

 Sintaks SQL: 

SELECT A.kolom1, B.kolom2 

FROM TabelA A 

RIGHT JOIN TabelB B ON A.kunci = B.kunci; 

 

  • FULL JOIN (FULL OUTER JOIN) 

Mengembalikan semua baris ketika ada kecocokan di salah satu tabel. Jika tidak ada kecocokan, kolom dari tabel yang tidak memiliki data akan berisi NULL. Full Join berguna untuk analisis data lengkap, termasuk yang tidak memiliki relasi. Contoh: Melihat semua karyawan (employees) dan departemen (departments), termasuk yang belum terisi. 

 

Gambar 4. Full Outer Join Visualization 

 

Sintaks SQL: 

SELECT A.kolom1, B.kolom2 

FROM TabelA A 

FULL JOIN TabelB B ON A.kunci = B.kunci; 

 

  • CROSS JOIN (Cartesian Product) 

Menggabungkan setiap baris dari tabel pertama dengan setiap baris dari tabel kedua, menghasilkan produk kartesian. Cartesian Product merupakan hasil gabungan semua kemungkinan pasangan baris dari dua tabel, tanpa kondisi penghubung (join condition). Cross Join ini berguna untuk skenario tertentu seperti pembuatan laporan kombinasi 

Gambar 5. Cross Join Visualization 

 Sintaks SQL: 

SELECT A.kolom1, B.kolom2 

FROM TabelA A 

CROSS JOIN TabelB B; 

 

  • SELF JOIN  

merupakan join yang dilakukan pada sebuah table dan digabungkan dengan dirinya sendiri, biasanya untuk relasi hierarkis. Self Join ini dapat digunakan untuk query hierarki (misal: digunakan untuk melihat struktur karyawan-manajer). 

Gambar 6. Self Join Visualization  

Sintaks SQL: 

SELECT A.karyawan, B.manager 

FROM Karyawan A 

JOIN Karyawan B ON A.manager_id = B.karyawan_id; 

 

Referensi:  

  • Carlos Coronel and Steven Morris. (2023). Database Systems: Design, Implementation, and Management. Cengage Learning. Boston. ISBN: 9780357673034. Chapter 7. 
  • Oracle Academy, Database Programming with SQL