RIGHT JOIN SQL: Kenapa Jarang Dipakai (dan Kapan Berguna)
Blog/Tutorial SQL/RIGHT JOIN SQL: Kenapa Jarang Dipakai (dan Kapan Berguna)

RIGHT JOIN SQL: Kenapa Jarang Dipakai (dan Kapan Berguna)

BimaBima
·17 Februari 2026·9 menit baca

Penulis

Bima

Bima

Founder & Data Professional

Bagikan

TL;DR

RIGHT JOIN nggabungin dua tabel dan nyimpen semua baris dari tabel kanan, walau gak ada pasangannya di tabel kiri. Hasilnya identik sama LEFT JOIN yang urutan tabelnya ditukar, jadi A RIGHT JOIN B sama persis dengan B LEFT JOIN A. Kebanyakan tim SQL sepakat pakai LEFT JOIN aja biar query kebaca dari atas ke bawah tanpa mikir mundur.

RIGHT JOIN nggabungin dua tabel dan nyimpen semua baris dari tabel kanan, walau nggak ada pasangannya di tabel kiri. Kolom dari tabel kiri yang kosong diisi NULL.

Cara kerjanya cerminan persis dari LEFT JOIN. Dan di situlah masalahnya.

A RIGHT JOIN B hasilnya sama persis dengan B LEFT JOIN A. Dua-duanya ngasih baris yang identik. Jadi ngapain ada dua?

Apa itu RIGHT JOIN di SQL?

RIGHT JOIN adalah operasi yang nyocokin baris dua tabel lewat kolom kunci, tapi tetap nampilin semua baris dari tabel kanan. Yang disebut "kanan" itu tabel yang ditulis setelah kata RIGHT JOIN. Tabel di FROM itu kiri.

SELECT kolom
FROM tabel_kiri
RIGHT JOIN tabel_kanan
  ON tabel_kiri.kunci = tabel_kanan.kunci;

Kata OUTER boleh ditambahin jadi RIGHT OUTER JOIN. Artinya sama.

Gimana cara kerja RIGHT JOIN?

Aku pakai data Toko Berkah. Tabel produk punya 6 barang, tabel penjualan cuma nyatet 4 transaksi dari 3 produk.

INSERT INTO produk VALUES
(1,'Beras Premium 5kg','Sembako', 68500),
(2,'Minyak Goreng 2L','Sembako', 34750),
(3,'Gula Pasir 1kg','Sembako', 16250),
(4,'Kopi Bubuk 200g','Minuman', 21375),
(5,'Teh Celup 25s','Minuman', 12000),
(6,'Sirup Pandan 600ml','Minuman', 18500);

INSERT INTO penjualan VALUES
(101,'2026-02-10', 1, 3),
(102,'2026-02-10', 3, 12),
(103,'2026-02-11', 2, 7),
(104,'2026-02-12', 1, 2);

Kopi, Teh, dan Sirup belum pernah kejual sama sekali. Tiga produk nganggur di rak.

SELECT pr.nama_produk, pr.kategori, p.tanggal, p.qty
FROM penjualan p
RIGHT JOIN produk pr ON p.id_produk = pr.id_produk
ORDER BY pr.id_produk;
nama_produkkategoritanggalqty
Beras Premium 5kgSembako2026-02-103
Beras Premium 5kgSembako2026-02-122
Minyak Goreng 2LSembako2026-02-117
Gula Pasir 1kgSembako2026-02-1012
Kopi Bubuk 200gMinumanNULLNULL
Teh Celup 25sMinumanNULLNULL
Sirup Pandan 600mlMinumanNULLNULL

Semua 6 produk muncul. Yang belum laku nilainya NULL.

Sekarang lihat query yang hasilnya persis sama:

SELECT pr.nama_produk, pr.kategori, p.tanggal, p.qty
FROM produk pr
LEFT JOIN penjualan p ON p.id_produk = pr.id_produk
ORDER BY pr.id_produk;

Baris yang keluar identik. Yang berubah cuma urutan tabelnya ditukar dan RIGHT diganti LEFT.

Kenapa RIGHT JOIN jarang dipakai?

Alasannya soal kebiasaan baca, bukan soal teknis.

Kita baca query dari atas ke bawah. Tabel pertama yang muncul — yang ada di FROM — kerasanya kayak tabel utama. Itu pusat perhatian kamu.

RIGHT JOIN maksa kamu mikir mundur. Tabel yang di FROM ternyata bukan yang utama. Yang utama justru yang nongol belakangan. Di query pendek sih masih oke. Di query 60 baris dengan 5 JOIN, kamu bakal bolak-balik ngecek yang mana tabel utamanya.

Terus, kalau kamu campur LEFT JOIN dan RIGHT JOIN dalam satu query, arah "pertahanan barisnya" jadi bolak-balik. Ini sumber bug yang susah dilacak.

Makanya kebanyakan tim SQL punya kesepakatan tak tertulis: pakai LEFT JOIN aja, konsisten satu arah. Dari kode SQL yang aku baca di berbagai proyek, RIGHT JOIN muncul jauh lebih jarang dibanding LEFT JOIN — dan hampir selalu bisa ditulis ulang jadi LEFT JOIN tanpa kehilangan apa pun.

Kapan RIGHT JOIN beneran berguna?

Ada satu situasi nyata, dan ini bukan teori.

Kamu udah punya query panjang. FROM-nya tabel penjualan, terus ada 3 JOIN ke tabel lain, alias udah dipakai di mana-mana, ada GROUP BY dan HAVING.

Terus kamu sadar: tabel produk yang mau kamu tambahin di akhir harus muncul semua, termasuk yang belum pernah laku.

Pilihan pertama: nulis ulang query dari nol, tukar FROM jadi produk, ganti semua arah JOIN, cek ulang selusin alias. Lima belas menit, plus risiko salah ketik.

Pilihan kedua: ganti satu kata jadi RIGHT JOIN. Lima detik.

SELECT pr.nama_produk,
       COALESCE(SUM(p.qty * pr.harga), 0) AS omzet
FROM penjualan p
RIGHT JOIN produk pr ON p.id_produk = pr.id_produk
GROUP BY pr.nama_produk
ORDER BY omzet DESC;
nama_produkomzet
Beras Premium 5kg342.500
Minyak Goreng 2L243.250
Gula Pasir 1kg195.000
Kopi Bubuk 200g0
Teh Celup 25s0
Sirup Pandan 600ml0

Tiga produk minuman omzetnya nol. Dari 6 produk yang distok, 50% nggak nyumbang duit sama sekali — dan modalnya ngendon di rak.

Buat analisis sekali pakai, RIGHT JOIN itu pilihan yang wajar. Buat query yang bakal dipakai orang lain dan dirawat berbulan-bulan, tulis ulang pakai LEFT JOIN.

Cari produk yang belum pernah laku

Pola anti-join yang sama kayak di LEFT JOIN, cuma arahnya dibalik:

SELECT pr.nama_produk, pr.kategori, pr.harga
FROM penjualan p
RIGHT JOIN produk pr ON p.id_produk = pr.id_produk
WHERE p.id_penjualan IS NULL;

Hasilnya tiga produk minuman tadi. Ini daftar yang perlu dievaluasi: dipromosiin, diturunin harganya, atau dihentikan.

Perhatiin IS NULL, bukan = NULL. Kenapa, aku jelasin di NULL di SQL.

Kesalahan umum pakai RIGHT JOIN

  • Ketuker mana tabel kiri dan kanan. Yang di FROM itu kiri. Yang setelah RIGHT JOIN itu kanan, dan itu yang dipertahanin semua barisnya.
  • Campur LEFT dan RIGHT JOIN dalam satu query. Arah pertahanan barisnya bolak-balik, dan bug-nya susah dilacak. Pilih satu arah, konsisten.
  • Naruh filter tabel kiri di WHERE. Sama kayak jebakan di LEFT JOIN. Baris tanpa pasangan punya NULL di kolom kiri, dan NULL nggak lolos WHERE. RIGHT JOIN kamu berubah jadi INNER JOIN. Taruh syarat filternya di ON.
  • Lupa COALESCE di SUM. Produk yang belum laku omzetnya keluar NULL, bukan 0.
  • Pakai RIGHT JOIN di SQLite versi lama. Dukungannya baru ada sejak SQLite 3.39 (rilis 2022). Versi sebelumnya langsung error.

FAQ

Apa itu RIGHT JOIN di SQL?

RIGHT JOIN nggabungin dua tabel dan nyimpen semua baris dari tabel kanan, yaitu tabel yang ditulis setelah kata RIGHT JOIN. Baris tabel kanan yang nggak punya pasangan di tabel kiri tetap muncul, dan kolom dari tabel kiri diisi NULL. Cara kerjanya cerminan persis dari LEFT JOIN.

Apa beda RIGHT JOIN dan LEFT JOIN?

Cuma beda sisi tabel yang dipertahanin. LEFT JOIN nyimpen semua baris tabel yang ditulis di FROM, RIGHT JOIN nyimpen semua baris tabel yang ditulis setelah JOIN. Hasilnya identik kalau kamu tukar urutan tabelnya, jadi A RIGHT JOIN B sama persis dengan B LEFT JOIN A.

Kenapa RIGHT JOIN jarang dipakai?

Soalnya bikin query lebih susah dibaca. Otak kita baca query dari atas ke bawah, jadi tabel pertama yang muncul terasa kayak tabel utama. RIGHT JOIN maksa kamu mikir mundur: yang penting justru tabel yang ditulis belakangan. Dan karena hasilnya bisa dicapai pakai LEFT JOIN, kebanyakan tim sepakat pakai LEFT JOIN aja biar konsisten.

Kapan RIGHT JOIN beneran berguna?

Pas kamu udah punya query panjang yang FROM-nya tabel transaksi, terus baru sadar butuh nampilin semua baris dari tabel master yang mau kamu tambahin di akhir. Ganti JOIN terakhir jadi RIGHT JOIN itu satu kata, sementara nulis ulang urutan tabel bisa berarti ngubah selusin alias. Buat query sekali pakai, ini pilihan yang wajar.

Apakah semua database dukung RIGHT JOIN?

Hampir semua. PostgreSQL, MySQL, SQL Server, dan Oracle udah lama dukung RIGHT JOIN. SQLite baru dukung mulai versi 3.39 yang rilis 2022, jadi kalau kamu pakai SQLite versi lama, RIGHT JOIN bakal error. Gampangnya, tulis ulang aja pakai LEFT JOIN dan tukar urutan tabelnya.

Penutup

RIGHT JOIN nggak salah, dia cuma kalah enak dibaca. Semua yang bisa dia lakuin, LEFT JOIN bisa juga — tinggal tukar urutan tabelnya.

Kalau kamu lagi ngebut benerin query panjang, pakai aja. Kalau kamu nulis query yang bakal dibaca orang lain, tulis pakai LEFT JOIN.

Sintaks lengkap per database ada di halaman fungsi RIGHT JOIN, dan konsep JOIN secara umum aku rangkum di glossary JOIN. Referensi resminya bisa kamu cek di dokumentasi JOIN MySQL.

Coba Langsung

Mau praktek langsung? Mulai latihan SQL gratis

Latihan interaktif, langsung di browser.

Buka NgulikSQL →
Bagikan:
Bima
Ditulis oleh

Bima

Founder & Data Professional

Founder Ngulik Data. Passionate about making data analysis accessible for everyone.

Artikel Terkait

7 SQL Client Gratis Terbaik buat Analis Data (2026)
Tutorial SQL
10 Juli 2026•9 menit baca

7 SQL Client Gratis Terbaik buat Analis Data (2026)

Nggak perlu bayar buat nulis query. Ini 7 SQL client gratis yang beneran dipakai analis, plus kelebihan dan kekurangannya masing-masing.

BimaBima
SQL Style Guide: Cara Nulis Query yang Enak Dibaca Tim
Tutorial SQL
7 Juli 2026•9 menit baca

SQL Style Guide: Cara Nulis Query yang Enak Dibaca Tim

Sepuluh aturan SQL style guide yang bikin query kamu kebaca sama tim — dan sama kamu sendiri 6 bulan lagi. Lengkap dengan contoh sebelum-sesudah.

BimaBima
Take-Home Test SQL Data Analyst: Contoh Soal + Cara Ngerjainnya
Tutorial SQL
4 Juli 2026•11 menit baca

Take-Home Test SQL Data Analyst: Contoh Soal + Cara Ngerjainnya

Contoh soal take-home test SQL yang beneran dipakai perusahaan, dikerjain step by step — dari baca soal, nulis query, sampai nyusun insight yang bikin recruiter nengok.

BimaBima
Kembali ke Blog
Ngulik Data logoNgulik Data

Platform edukasi data lengkap untuk professionals Indonesia. Belajar SQL, Data Analysis, dan lebih banyak lagi dengan praktek langsung dan feedback real-time.

Copyright © 2026 - All rights reserved

LINKS
SupportPricingDatasetBlogAffiliates
LEGAL
Terms of servicesPrivacy policy
Ngulik Data
DatasetLeaderboardBlogStore