17 MySQL - JOIN

 logo mysql


JOIN

Join merupakan perintah yang digunakan untuk menampilkan data dari beberapa tabel. Join merupakan perintah dalam MYSQL yang digunakan untuk menggabungkan dua tabel atau lebih. Join dapat lagi dibagi menjadi sub- sub yaitu Inner Join dan Outer Join, Outer Join dapat lagi dibagi menjadi Left Join dan Right Join.


Baca Juga: MySQL - Having dan Where


1)    Inner Join

Inner Join merupakan perintah yang dapat menggabungkan atau lebih tabel dan digabungkan secara dua arah. Penggabungan dua arah ini menyababkan tidak adanya data bernilai null yang tampil dari hasil seleksi.

SELECT transaksi.id_trnasaksi, pelanggan.nama_pelanggan, 
pegawai.nama_pegawai, barang.nama_barang, 
transaksi.waktu_transaksi
FROM pelanggan 
INNER JOIN transaksi ON 
pelanggan.id_pelanggan=transaksi.id_pelanggan
INNER JOIN pegawai ON pegawai.id_pegawai= 
transaksi.id_pegawai
INNER JOIN barang ON barang.id_barang=transaksi.id_barang
WHERE id_trnasaksi < 4;


Kode Program Inner Join merupakan sintak yang digunakan untuk menampilkan data dari tabel transaksi, pelanggan, barang dan pegawai yang memiliki id_trnasaksi kurang dari 4.


inner join
inner join

 

Gambar Inner Join merupakan tampilan Kode Program Inner Join yang telah dijalankan. Gambar tersebut memperlihatkan tiga pelanggan yang memiliki id_pelanggan dibawah 3.


Baca Juga: MySQL - Union



2)    Outer Join

Outer join merupakan perintah untuk menggabungkan tabel secara satu arah, jadi karena penggabungan tabel secara satu arah ini maka hasil penggabungan outer join menyebabkan adanya data yang bernilai null. Terdapat dua jenis outer join  yaitu left join dan right join.

a.    Left Join

Left join merupakan perintah yang akan menampilkan semua data yang menjadi acuannya meskipun ada data yang tidak menjadi acuan tersebut tidak memiliki nilai atau bernilai null. Data yang menjadi acuan pada left join adalah data yang berada di kiri.

SELECT transaksi.id_trnasaksi, pelanggan.nama_pelanggan, 
pegawai.nama_pegawai, barang.nama_barang, 
transaksi.waktu_transaksi
SELECT pelanggan.id_pelanggan, 
pelanggan.nama_pelanggan, transaksi.id_trnasaksi
FROM pelanggan 
LEFT JOIN transaksi ON 
pelanggan.id_pelanggan=transaksi.id_pelanggan;

 

Kode Program Left Join merupakan sintak yang digunakan untuk menampilkan data id_pelanggan, nama_pelanggan, dan id_trnasaksi dari tabel pelanggan dan transaksi, dengan menggunakan data klom paling kiri sebagai acuan.

 

Left Join
Left Join

Gambar Left Join Kode merupakan tampilan Kode Program Left Join yang telah dijalankan. Gambar tersebut menampilkan penggabungan dari tabel pelanggan dan transaksi. Nilai null dalam kolom id_transaksi disebabkan oleh left join, karena tabel yang menjadi acuan adalah tabel paling kiri dan beberapa pelanggan belum pernah melakukan transaksi sehingga data pada id_transaksi ada yang bernilai null


Baca Juga: MySQL - Nested Query , Group by, Order by dan Alias.


b.    Right Join

Right join merupakan perintah yang sama dengan left join, hanya saja pada right join data yang menjadi acuan adalah data yang berada paling kanan. Data akan ditampilkan sesuai dengan data acuan walaupun ada data yang tidak menjadi acuan memiliki nilai null atau tidak memiliki nilai. 

 

SELECT transaksi.`id_trnasaksi`, 
pelanggan.`nama_pelanggan`, pelanggan.`id_pelanggan`
FROM transaksi 
RIGHT JOIN pelanggan ON 
transaksi.`id_pelanggan`=pelanggan.`id_pelanggan`;


Kode Program Right Join merupakan sintak yang digunakan untuk nama_pelanggan, id_pelanggan, id_trnasaksi dari tabel pelanggan dan transaksi, dengan menjadikan tabel paling kanan sebagai tabel acuan


Right Join
Right Join


Gambar Right Join merupakan tampilan Kode Program Right Join yang sudah dijalankan. Data yang ditampilakan dari gambar tersebut merupakan kebalikan dari data yang ditampilkan pada left join. Data pada Gambar Right Join meletakan id_pelanggan dikolom paling kanan, ini untuk membuktikan kebenranan dari right join dimana data yang akan digunakan sebagai acuan adalah data yang paling kanan.



komentar dengan bijak ya :)
please write comments wisely :)
EmoticonEmoticon