Halo Minna! Hari ini mimin akan bahas tentang cara menggabungkan dua tabel di SQL dengan menggunakan salah satu metode gabungan. Kita pasti sudah familiar dengan inner join dan left join. Nah, kali ini mimin akan membahas salah satu jenis metode gabungan lainnya yang menarik untuk dipelajari.

Metode ini akan membantu kita menggabungkan dua tabel dan menampilkan semua data dari tabel di sebelah kanan namun hanya data yang memiliki pasangan yang akan ditampilkan dari tabel di sebelah kiri.

So, tanpa lama-lama kita langsung aja ke pembahasan!

Pengertian Right Join

Right join adalah salah satu jenis metode penggabungan tabel (join) di SQL, yang digunakan untuk menggabungkan dua tabel berdasarkan kolom-kolom yang sama di antara keduanya. Dalam right join, semua data yang ada di tabel di sebelah kanan akan ditampilkan, namun hanya data yang memiliki pasangan yang akan ditampilkan dari tabel di sebelah kiri. Jadi, jika ada data di sebelah kanan yang tidak memiliki pasangan di sebelah kiri, data tersebut tetap akan ditampilkan dengan nilai NULL pada kolom-kolom di sebelah kiri.

Contohnya, jika kita memiliki dua tabel yaitu tabel pelanggan dan tabel pesanan. Dengan menggunakan right join pada tabel pesanan dan tabel pelanggan, kita dapat menampilkan semua data dari tabel pesanan, namun hanya data pesanan yang memiliki pasangan dengan data pelanggan yang akan ditampilkan. Jika ada data pesanan yang tidak memiliki pasangan di tabel pelanggan, data tersebut tetap akan ditampilkan dengan nilai NULL pada kolom-kolom di tabel pelanggan.

Kapan harus menggunakan Right Join?

Right join digunakan ketika kita ingin menampilkan semua data dari tabel di sebelah kanan dan hanya data yang memiliki pasangan yang akan ditampilkan dari tabel di sebelah kiri. Ada beberapa situasi ketika menggunakan right join adalah pilihan yang tepat, antara lain:

  • Menampilkan data referensi : Right join dapat digunakan untuk menampilkan semua data dari tabel referensi, bahkan jika belum ada data yang memilikinya di tabel lainnya. Misalnya, ketika kita ingin menampilkan semua produk yang tersedia, bahkan jika belum ada pesanan yang ditempatkan oleh pelanggan.

  • Analisis data historis : Ketika kita ingin menganalisis data historis, terkadang kita memerlukan data yang sudah tidak aktif atau dihapus. Right join dapat digunakan untuk menampilkan semua data dari tabel sebelah kanan, termasuk data yang sudah tidak aktif atau dihapus, dan hanya data yang memiliki pasangan yang akan ditampilkan dari tabel sebelah kiri.

  • Menganalisis data kompleks : Kadang-kadang kita perlu menggabungkan beberapa tabel yang terkait secara kompleks, dengan berbagai tingkat hubungan yang berbeda. Right join dapat digunakan untuk menampilkan semua data dari tabel di sebelah kanan, dan hanya data yang memiliki pasangan yang akan ditampilkan dari tabel di sebelah kiri, yang membuat analisis data lebih mudah dan lebih komprehensif.

Namun, perlu diingat bahwa right join harus digunakan dengan hati-hati karena dapat menghasilkan data yang kompleks dan sulit dipahami. Selalu pastikan untuk memeriksa dan memahami data yang ditampilkan sebelum melakukan analisis lebih lanjut.

Perbedaan Right Join dengan Left Join

Right join dan left join adalah dua jenis metode penggabungan tabel (join) di SQL yang sering digunakan untuk menggabungkan dua tabel berdasarkan kolom-kolom yang sama di antara keduanya. Perbedaan utama antara right join dan left join adalah sebagai berikut:

  • Data yang ditampilkan : Dalam right join, semua data yang ada di tabel di sebelah kanan akan ditampilkan, sementara data yang memiliki pasangan hanya akan ditampilkan dari tabel di sebelah kiri. Sedangkan dalam left join, semua data yang ada di tabel di sebelah kiri akan ditampilkan, sementara data yang memiliki pasangan hanya akan ditampilkan dari tabel di sebelah kanan.

  • Penempatan tabel : Dalam right join, tabel di sebelah kanan adalah tabel utama, sementara tabel di sebelah kiri adalah tabel yang dipasangkan. Sedangkan dalam left join, tabel di sebelah kiri adalah tabel utama, sementara tabel di sebelah kanan adalah tabel yang dipasangkan.

  • Nilai NULL : Dalam right join, jika ada data di sebelah kanan yang tidak memiliki pasangan di sebelah kiri, data tersebut tetap akan ditampilkan dengan nilai NULL pada kolom-kolom di sebelah kiri. Sedangkan dalam left join, jika ada data di sebelah kiri yang tidak memiliki pasangan di sebelah kanan, data tersebut tetap akan ditampilkan dengan nilai NULL pada kolom-kolom di sebelah kanan.

Dalam memilih antara right join dan left join, tergantung pada data yang ingin ditampilkan dan bagaimana hubungan antara kedua tabel tersebut. Jika kita ingin menampilkan semua data dari tabel di sebelah kanan, meskipun belum ada pasangan di tabel di sebelah kiri, maka right join adalah pilihan yang tepat. Sedangkan jika kita ingin menampilkan semua data dari tabel di sebelah kiri, meskipun belum ada pasangan di tabel di sebelah kanan, maka left join adalah pilihan yang tepat.

Contoh penggunaan Right Join

Misalnya, kita memiliki dua tabel: Tabel A dan Tabel B. Tabel A berisi informasi tentang produk yang dijual, sementara Tabel B berisi informasi tentang penjualan produk tersebut. Kedua tabel ini terhubung melalui kolom “product_id”.

Tabel A: Products

product_idproduct_nameprice
1Tumbler50.000
2Dunia Shopie129.000
3Earphone80.000
4Buku Tulis5.000

Tabel B: Sales

sale_idproduct_idsale_datequantitytotal_price
112022-01-012100.000
222022-02-011129.000
312022-03-013150.000
442022-04-01220.000

Kita ingin menampilkan semua data dari Tabel B beserta informasi produk dari Tabel A yang sesuai, termasuk data produk yang tidak terjual.

Maka, kita dapat menggunakan right join sebagai berikut:

SELECT *
FROM Sales
RIGHT JOIN Products ON Sales.product_id = Products.product_id;

Maka outputnya :

sale_idproduct_idsale_datequantitytotal_priceproduct_idproduct_nameprice
112022-01-012100.0001Tumbler50.000
222022-02-011129.0002Dunia Shopie129.000
312022-03-013150.0001Tumbler50.000
442022-04-01220.0004Buku Tulis5.000
NULL3NULLNULLNULL3Earphone80.000

Dalam contoh ini, right join digunakan untuk menampilkan semua data dari Tabel B beserta informasi produk dari Tabel A yang sesuai berdasarkan product_id. Namun, karena ada product_id yang tidak ada di Tabel B, maka data dari Tabel A yang sesuai akan tetap ditampilkan, dan nilai NULL ditampilkan di kolom-kolom Tabel B. Sehingga dalam contoh ini, data produk yang tidak terjual (Earphone) tetap ditampilkan.