RIGHT JOIN di SQL

Kebalikan LEFT JOIN: semua baris tabel kanan dipertahankan, tabel kiri hanya yang cocok.

Penjelasan sederhana

RIGHT JOIN adalah kebalikan LEFT JOIN. Semua baris dari tabel kanan (yang ditulis setelah RIGHT JOIN) dipertahankan, sedangkan dari tabel kiri hanya yang punya pasangan.

Dalam praktik, kebanyakan orang lebih suka menukar urutan tabel lalu memakai LEFT JOIN, karena lebih mudah dibaca. Hasilnya sama saja.

Sintaks

SELECT a.kolom, b.kolom
FROM tabel_a AS a
RIGHT JOIN tabel_b AS b
  ON a.kunci = b.kunci;
BagianKeterangan
tabel kananTabel setelah RIGHT JOIN. Semua barisnya dipertahankan.

Tanda [kurung siku] berarti bagian opsional. Kata kunci SQL tidak membedakan huruf besar-kecil, tapi menulisnya dengan huruf besar membuat query lebih mudah dibaca.

Contoh RIGHT JOIN

Data contoh: karyawan, departemen

Tabel karyawan

idnamadept_idkotagajitgl_masukatasan_id
1 Andi Pratama 3 Bandung 12500000 2019-03-11 NULL
2 Bunga Lestari 1 Jakarta 9800000 2020-07-01 NULL
3 Candra Wijaya 3 Bandung 8200000 2021-02-15 1
4 Dewi Anggraini 2 Jakarta 7500000 2022-05-09 6
5 Eko Saputra 1 Jakarta 6900000 2023-01-16 2
6 Fajar Nugroho 2 Surabaya 11000000 2018-09-03 NULL
7 Gita Permata 3 Jakarta 8200000 2023-08-21 1
8 Hendra Gunawan NULL Medan 5500000 2024-04-02 NULL

Tabel departemen

idnama_deptlokasi
1 Keuangan Jakarta
2 Marketing Jakarta
3 IT Bandung
4 Legal Surabaya
query.sql
SELECT k.nama, d.nama_dept
FROM karyawan AS k
RIGHT JOIN departemen AS d
  ON k.dept_id = d.id;
>_ Jalankan & ubah query ini di browser

Hasil 8 baris

namanama_dept
Andi Pratama IT
Bunga Lestari Keuangan
Candra Wijaya IT
Dewi Anggraini Marketing
Eko Saputra Keuangan
Fajar Nugroho Marketing
Gita Permata IT
NULL Legal

Departemen Legal ikut muncul walau belum punya karyawan. Hendra tidak muncul.

Cara kerjanya, langkah demi langkah

  1. Tabel kanannya departemen (4 baris). Semuanya pasti muncul.
  2. Setiap departemen dicarikan karyawannya lewat k.dept_id = d.id. Keuangan punya 2 karyawan, Marketing 2, IT 3.
  3. Legal tidak punya karyawan. Ia tetap ditampilkan dengan nama NULL.
  4. Hendra tidak muncul, karena ia ada di tabel kiri dan tidak punya pasangan departemen.
  5. Hasilnya 8 baris.

Dipakai untuk apa di kantor?

  • Menampilkan semua departemen atau cabang, termasuk yang belum punya karyawan.

Kesalahan yang sering terjadi

  • Mencampur LEFT JOIN dan RIGHT JOIN dalam satu query. Hasilnya sulit ditebak dan sulit dibaca orang lain. Pilih satu arah saja.
Progres bab Gabung Tabel (JOIN) 0/7 dipelajari
Lanjut: FULL OUTER JOIN

Belajar SQL bareng mentor

Hafal sintaks itu mudah. Menjawab pertanyaan bisnis, itu skill.

Private Class Python & SQL untuk Data: dari query dasar sampai JOIN dan studi kasus kerja, dengan kurikulum dan jadwal yang menyesuaikan kamu.

Lihat Private Class