Perbedaan dan Penggunaan JOIN dan UNION Dalam SQL


Untuk mengolah data, biasanya banyak fungsi yang digunakan seperti create, drop, update, delete, merge, insert, select, union, join, dl. Untuk kali ini kita akan berbagi ilmu bersama mengenai perbedaan UNION dan JOIN yang sangat sering digunakan dalam query SQL dengan bahasa sendiri dan semoga lebih mudah untuk dipahami.
Berikut contoh table nya :

Table Pembeli / Buyer







Table Barang 







Table Penjualan Bulan Januari 2018







Table Penjualan Bulan Februari 2018


A. UNION
     UNION
       Pengertian sederhananya, UNION ada fungsi untuk menggabungkan dua table dalam bentuk baris baru kebawah dan nilai nya distinct/unik. Untuk field yang diselect antara tableA dan tableB adalah harus sama.

select * from PENJUALAN_201801
union 
select * from PENJUALAN_201802;

hasilnya adalah sebagai berikut :

UNION ALL
      Fungsi UNION ALL sama dengan UNION tetapi nilai yang dimunculkan tidak distinct.

select * from PENJUALAN_201801
union all
select * from PENJUALAN_201802;



B. JOIN
      Pengertian sederhananya, JOIN adalah fungsi yang menggabungkan 2 table ke samping (dalam bentuk kolom baru). Penggunaan fungsi JOIN bisa select field yang berbeda dari masing-masing table sesuai dengan kebutuhan.

     INNER JOIN
          Fungsi JOIN yang mengambil nilai yang sama yang ada dalam 2 table tersebut, sehingga tidak ada nilai NULL.


select * from PENJUALAN_201802 a

inner join  BARANG B

on a.id_barang = b.id_barang;







     LEFT JOIN
           Fungsi JOIN yang mengacu pada table sebelah kiri, sehingga semua data di table kiri akan ditampilkan, dan jika table kanan tidak ada ada nilainya maka akan menampilkan nilai NULL. Dan jika table kanan mempunyai record yang tidak ada di table kiri, maka tidak akan ditampilkan.


select * from PEMBELI a

left join  PENJUALAN_201802 b

on a.id_buyer = b.id_buyer ;






     



       RIGHT JOIN
                  Fungsi JOIN yang mengacu pada table sebelah kanan, sehingga semua data di table kanan akan ditampilkan, dan jika table kiri tidak ada ada nilainya maka akan menampilkan nilai NULL. Dan jika table kiri mempunyai record yang tidak ada di table kanan, maka tidak akan ditampilkan.


    select * from PEMBELI a
    right join  PENJUALAN_201802 b
    on a.id_buyer = b.id_buyer ;









    select * from PENJUALAN_201802 a
    right join  BARANG b
    on a.id_barang = b.id_barang ;












    Semoga bermanfaat ٩꒰。•‿•。꒱۶

    No comments:

    Post a Comment