1. INNER JOIN
INNER JOIN hanya menampilkan baris data yang memiliki kecocokan di kedua tabel berdasarkan kolom yang dihubungkan. Jika satu sisi tidak memiliki pasangan data yang cocok, maka baris tersebut akan diabaikan dari hasil query.
JOIN ini paling umum digunakan, terutama saat kamu hanya ingin melihat data yang sudah terhubung secara langsung di antara dua tabel. Cocok untuk laporan yang hanya menampilkan transaksi yang valid atau data yang lengkap.
SELECT pelanggan.nama, pesanan.produk FROM pelanggan INNER JOIN pesanan ON pelanggan.id_pelanggan = pesanan.id_pelanggan; |
2. LEFT JOIN (LEFT OUTER JOIN)
LEFT JOIN menampilkan semua data dari tabel sebelah kiri (dalam hal ini pelanggan), meskipun tidak memiliki pasangan di tabel kanan (pesanan). Jika tidak ada pasangan data, maka kolom dari tabel kanan akan bernilai NULL.
JOIN ini cocok saat kamu ingin melihat semua data utama (pelanggan), termasuk yang belum melakukan pembelian. Sangat berguna untuk laporan seperti “pelanggan aktif dan tidak aktif”.
SELECT pelanggan.nama, pesanan.produk FROM pelanggan LEFT JOIN pesanan ON pelanggan.id_pelanggan = pesanan.id_pelanggan; |
3. RIGHT JOIN (RIGHT OUTER JOIN)
RIGHT JOIN menampilkan semua data dari tabel kanan (pesanan), termasuk yang tidak memiliki kecocokan di tabel kiri (pelanggan). Bila data pelanggan tidak ditemukan, maka kolom nama akan berisi NULL.
JOIN ini berguna untuk menemukan data yang “masih berdiri sendiri” di tabel kanan, seperti transaksi tanpa data pelanggan yang lengkap. Bisa digunakan untuk validasi data input atau audit sistem.
SELECT pelanggan.nama, pesanan.produk FROM pelanggan RIGHT JOIN pesanan ON pelanggan.id_pelanggan = pesanan.id_pelanggan; |
4. FULL JOIN (FULL OUTER JOIN)
FULL JOIN menggabungkan hasil dari LEFT JOIN dan RIGHT JOIN. Artinya, semua baris dari kedua tabel akan ditampilkan, baik yang punya pasangan maupun yang tidak.
MySQL tidak mendukung FULL JOIN secara langsung, tapi kamu bisa menyimulasikannya dengan UNION dari LEFT dan RIGHT JOIN. Cocok untuk menampilkan semua data, sekaligus tahu bagian mana yang belum terhubung antar tabel.
SELECT pelanggan.nama, pesanan.produk FROM pelanggan LEFT JOIN pesanan ON pelanggan.id_pelanggan = pesanan.id_pelanggan UNION SELECT pelanggan.nama, pesanan.produk FROM pelanggan RIGHT JOIN pesanan ON pelanggan.id_pelanggan = pesanan.id_pelanggan; |
5. CROSS JOIN
CROSS JOIN menggabungkan semua baris dari tabel pertama dengan semua baris dari tabel kedua. Hasilnya adalah kombinasi total atau cartesian product dari dua tabel.
Biasanya digunakan untuk membuat kombinasi semua kemungkinan pasangan, bukan untuk relasi berbasis data yang cocok. Hati-hati dengan jumlah hasil jika tabel sangat besar.
SELECT pelanggan.nama, pesanan.produk FROM pelanggan CROSS JOIN pesanan; |
0 komentar:
Posting Komentar