Pada
tutorial kali ini akan dibahas mengenai
join table pada MySQL. Join table merupakan penggabungan beberapa table yang
dihubungkan dengan suatu relasi atau key yang sama dari setiap table, sehingga
table yang akan digabungkan akan dapat berelasi. Pada pertemuan ini, dibahas
beberapa join seperti : Inner Join, Outer Join (Left & Right), dan Cross
join.
Untuk mulai menggabungkan beberapa
table, kita harus membuat table terlebih dahulu, table yang akan dibuat disini
yaitu table PPh, Bank, dan Jamsostek. Dimana table tersebut diberikan struktur
seperti dibawah ini :
Tabel
PPh
Field
|
Type
|
No_Pegawai
|
Integer (10)
|
NPWP
|
Integer (10)
|
Nama
|
Varchar
(30)
|
Tabel
Bank
Field
|
Type
|
No_Pegawai
|
Integer (10)
|
Nama_Bank
|
Varchar (30)
|
Cabang
|
Varchar (30)
|
Tabel
Jamsostek
Field
|
Type
|
No_Pegawai
|
Integer
(10)
|
Perusahaan
|
Varchar (30)
|
Alamat
|
Varchar (30)
|
Data table
yang akan dimasukan sebagai berikut :
Tabel
PPh
No_Pegawai
|
NPWP
|
Nama
|
30928124
|
3425
|
Dwi
Shakti M
|
30298756
|
7896
|
Faizal
P
|
39283547
|
4657
|
Triana
Ulfa
|
45637892
|
8907
|
Andro
Vallendro
|
48903983
|
9087
|
Trizky
Suci Pitaloka
|
Tabel Bank
No_Pegawai
|
Nama_Bank
|
Cabang
|
30928124
|
Mandiri
|
Matraman
|
30298756
|
BRI
|
Sudirman
|
39283547
|
BCA
|
Kenari
|
45637892
|
BNI
|
Muara Karang
|
48903983
|
BRI
|
Lenteng Agung
|
Tabel
Jamsostek
No_Pegawai
|
Perusahaan
|
Alamat
|
30928124
|
Karya Baru
|
kayu Manis
|
30298756
|
Warna Jaya
|
Lebak Bulus
|
39283547
|
Gaya Baru
|
Pluit
|
45637892
|
Multi Farma
|
Cimanggis
|
48903983
|
Rama Tech
|
Jagakarsa
|
LISTING PROGRAM
1. DDL
§ CREATE DATABASE database_name;
§ USE database_name;
§ CREATE TABLE table_name(
column_name1
data_type,
column_name2
data_type,
…. );
§ DESC
table_name;
2. DML
§ INSERT INTO table_name VALUES(value1,value2,value3,…);
§ SELECT * FROM table_name;
§ UPDATE
table_name SET nama_kolom = value [WHERE condition]
3. Inner
Join
§ SELECT field FROM tabel1 INNER JOIN tabel2 ON kondisi;
4.
Cross Join
§
SELECT
field1,field2 FROM tabel1 CROSS JOIN tabel2;
5.
OUTER JOIN
§
LEFT (OUTER) JOIN
SELECT field FROM tabel1 LEFT JOIN tabel2 ON kondisi;
§
RIGHT (OUTER)JOIN
SELECT field
FROM tabel1 RIGHT JOIN tabel2 ON kondisi;
|
LOGIKA PROGRAM
1.
Membuat database Pegawai, dengan
perintah DDL
CREATE DATABASE Pegawai;
2.
Menggunakan database tersebut,
dengan perintah DDL
USE Pegawai;
3.
Membuat 3 tabel, karena pada
pertemuan ini akan dibahas mengenai join table, jadi disini dibuatlah table
lebih dari 1 dengan perintah DML
-
Tabel PPh
-
Tabel Bank
-
Tabel Jamsostek
4.
Mengisi data dari masing-masing
table dengan perintah DDL, Insert
-
Tabel PPh
-
Tabel Bank
-
Tabel Jamsostek
5.
Menambahkan 2 record pada table
Jamsostek dengan menggunakan perintah DML, insert
6.
Join table dengan menggunakan
Inner Join
-
Menampilkan semua field dari
table PPh dan Bank tanpa kondisi
SELECT
* FROM PPh INNER JOIN Bank;
- Menampilkan field Nama dan NPWP
dari table PPh, Perusahaan pada table Jamsostek , dengan kondisi
No_Pegawai dari table PPh sama dengan No_Pegawai pada table Jamsostek.
SELECT
Nama, NPWP, Perusahaan FROM PPh INNER JOIN Jamsostek ON
PPh.No_Pegawai=Jamsostek.No_Pegawai;
7.
Menggabungkan table dengan
menggunakan Cross Join
- Menampilkan semua field
pada tabe Bank dan PPh dengan kondisi No_Pegawai pada table PPh sama
dengan No_Pegawai pada table Bank.
SELECT
* FROM Bank CROSS JOIN PPh ON
PPh.No_Pegawai=Bank.No_Pegawai;
-
Menampilkan field Nama pada table
PPh dan Nama_Bank, Cabang dari table Bank dengan kondisi No_Pegawai pada
table PPh sama dengan No_Pegawai pada table Bank.
SELECT
PPh.Nama, Bank.Nama_Bank, Bank.Cabang FROM PPh CROSS JOIN Bank ON
PPh.No_Pegawai=Bank.No_Pegawai;
8.
Menggabungkan table dengan
menggunakan Outer Join
-
Left Join
Menggabungkan field Perusahaan, Alamat dari
table Jamsostek dan Nama_Bank dari tabel Bank dengan kondisi No_Pegawai pada
table Bank sama dengan No_Pegawai pada table Jamsostek.
SELECT
Jamsostek.Perusahaan, Jamsostek.Alamat, Bank.Nama_Bank
FROM Jamsostek LEFT JOIN Bank ON Bank.No_Pegawai=Jamsostek.No_Pegawai;
Penjelasan :
Pada Left Join, data ditampikan semua dari
table Jamsotek, tetapi sebagian data akan bernilai null pada table Bank karena ada data yang tidak berelasi antara
table Jamsostek dan Bank.
-
Right Join
Memapilkan field Nama_Bank dari
table Bank, Perusahaan dan Alamat dari table Jamsostek dengan
kondisi No_Pegawai pada table Bank sama dengan
No_Pegawai pada table Jamsostek.
SELECT Bank.Nama_Bank, Jamsostek.Perusahaan,
Jamsostek.Alamat FROM Bank RIGHT JOIN Jamsostek ON
Bank.No_Pegawai=Jamsostek.No_Pegawai;
Penjelasan :
Pada
Right Join, data akan ditampilkan semua isi tabel sisi Kanan, walaupun data di
pasangan joinnya yg disisi kiri nilainya tidak sama ataupun bernilai null.
OUTPUT
Inner Join
-
Tanpa kondisi
-
Dengan
kondisi
Cross Join