DML JOIN
Halo Agan-agan! Bertemu lagi dengan saya. Kali ini saya akan
mengulas sedikit tentang Data Manipulation Language Join. Join adalah cara
untuk menghubungkan data yang diambil dari table-tabel melalui sebuah kolom
yang menghubungkan mereka. Pasti aka nada dimana kita mengakses data di table A
membutuhkan detail di table B, maka peran join disitu.
1.
Inner Join
Mengembalikan baris-baris dari dua table atau
lebih yang memenuhi syarat.
2.
Left Outer Join
Mengembalikan seluruh baris dari table disebelah
kiri yang dikenai kondisi ON dan hanya baris dari table disebelah kanan yang
memenuhi kondisi join.
3.
Right Outer Join
Mengembalikan semua baris dari table disebelah
kanan yang dikenai ON dengan data dari table sebelah kiri yang memenuhi kondisi
join. Atau kebalikan dari Left Outer Join.
4.
Full Outer Join
Mengembalikan seluruh baris dari kedua table yang
dikenai ON termasuk data-data yang bernilai NULL.
Menggabungkan 2 tabel atau lebih
1)
2 tabel
SELECT
tabel1.*, table2.* FROM tabel1, tabel2 WHERE tabel1.PK=tabel2.FK;
2)
3 tabel
SELECT
tabel1.*, tabel2.*, tabel3.* FROM tabel1, tabel2, tabel3 WHERE
tabel1.PK=tabel2.FK AND tabel2.PK=tabel3.FK;
Dan
seterusnya…
Dan berikut adalah source code saya
CREATE TABLE pelanggan
(id_pelanggan varchar(5) NOT NULL, nm_pelanggan varchar(40), alamat text NOT
NULL, telepon varchar(20) NOT NULL, email varchar(50) NOT NULL, PRIMARY KEY
(id_pelanggan)) ENGINE=InnoDB DEFAULT CHARSET=latin1 CHECKSUM=1
DELAY_KEY_WRITE=1 ROW_FORMAT=DYNAMIC;
CREATE TABLE produk
(id_produk varchar (5) NOT NULL, nm_produk varchar (30) NOT NULL, satuan
varchar (10) NOT NULL, harga decimal (10,0) NOT NULL default '0', stock int (3)
NOT NULL default '0', PRIMARY KEY (id_produk)) ENGINE=InnoDB DEFAULT
CHARSET=latin1;
CREATE TABLE pesan
(id_pesan int (5) NOT NULL AUTO_INCREMENT, id_pelanggan varchar (5) NOT NULL,
tgl_pesan date NOT NULL, PRIMARY KEY (id_pesan), KEY id_pelanggan
(id_pelanggan), CONSTRAINT pesan_ibfk_2 FOREIGN KEY (id_pelanggan) REFERENCES
pelanggan (id_pelanggan)) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT
CHARSET=latin1;
CREATE TABLE
detail_pesan (id_pesan int (5) NOT NULL, id_produk varchar (5) NOT NULL, jumlah
int (5) NOT NULL default '0', harga decimal (10,0) NOT NULL default '0',
PRIMARY KEY (id_pesan, id_produk), KEY FK_pesan (id_produk), KEY id_pesan
(id_pesan), CONSTRAINT FK_pesan FOREIGN KEY (id_produk) REFERENCES
produk(id_produk), CONSTRAINT FK_Pesan2 FOREIGN KEY (id_pesan) REFERENCES pesan
(id_pesan)) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE faktur
(id_faktur int (5) NOT NULL AUTO_INCREMENT, id_pesan int (5) NOT NULL,
tgl_faktur date NOT NULL, PRIMARY KEY (id_faktur), KEY id_pesan (id_pesan),
CONSTRAINT faktur_ibfk_1 FOREIGN KEY (id_pesan) REFERENCES pesan (id_pesan))
ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE kuitansi
(id_kuitansi int (5) NOT NULL AUTO_INCREMENT, id_faktur int (5) NOT NULL,
tgl_kuitansi date NOT NULL, PRIMARY KEY (id_kuitansi), KEY FK_kuitansi
(id_faktur), CONSTRAINT FK_kuitansi FOREIGN KEY (id_faktur) REFERENCES faktur
(id_faktur)) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Show tables;
Komentar
Posting Komentar