-->

MySQL : Join Table

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















LihatTutupKomentar