Catatan : Penggunaan Join untuk 3 tabel atau lebih [SQL Script]

Sering kawan2 kuliah itu bertanya, bagaimana cara join 3 tabel di Sql, maka dari itu saya buatin tutorial cara atau bagaimana penggunaan join untuk 3 tabel atau lebih.


misalnya saya mempunyai tabel seperti ini :
Tabel 1 – mhs



CREATE TABLE mhs (
nim char(10) NOT NULL,
nama varchar(35) NOT NULL,
prodi char(5) NOT NULL,
PRIMARY KEY (nim)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

INSERT INTO mhs (nim, nama, prodi) VALUES
(‘11.4.00021’, ‘Ika Nur Aini’, ‘SI-S1’),
(‘11.4.00002’, ‘Ana Mardani’, ‘SI-S1’),
(‘11.5.00037’, ‘Hanafi Mukti’, ‘TI-S1’),
(‘11.5.00001’, ‘Abdul Majid’, ‘TI-S1’),
(‘11.4.00022’, ‘Ahmad Udin’, ‘SI-S1’),
(‘11.5.00002’, ‘Abdul Mujib’, ‘TI-S1’);

Tabel 2 – daftarmk

CREATE TABLE daftarmk (
kdmk varchar(10) NOT NULL,
nmmk varchar(50) NOT NULL,
sks int(11) NOT NULL,
PRIMARY KEY (kdmk)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

INSERT INTO daftarmk (kdmk, nmmk, sks) VALUES
(‘511011’, ‘Interpersonal Skill’, 2),
(‘511012’, ‘Pemrograman Basis Data’, 3),
(‘511013’, ‘Pemrograman Internet 3’, 3),
(‘511014’, ‘Bimbingan Karier’, 2),
(‘511015’, ‘Sistem Digital’, 2),
(‘511017’, ‘Multimedia I’, 2),
(‘511021’, ‘Pemrograman Lanjut II’, 3);

Tabel 3 – ambilkrs

CREATE TABLE IF NOT EXISTS ambilkrs (
thakd year(4) NOT NULL,
smt int(11) NOT NULL,
nim varchar(10) NOT NULL,
kdmk varchar(10) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

INSERT INTO ambilkrs (thakd, smt, nim, kdmk) VALUES
(2014, 6, ‘11.5.00001’, ‘511012’),
(2014, 6, ‘11.5.00001’, ‘511013’),
(2014, 6, ‘11.5.00001’, ‘511011’),
(2014, 6, ‘11.4.00002’, ”),
(2014, 6, ‘11.4.00021’, ”),
(2014, 6, ‘11.4.00022’, ”),
(2014, 6, ‘11.5.00001’, ”),
(2014, 6, ‘11.5.00002’, ‘511021’),
(2014, 6, ‘11.5.00037’, ”),
(2014, 6, ‘11.5.00002’, ‘511013’),
(2014, 6, ‘11.5.00002’, ‘511017’),
(2014, 6, ‘11.4.00022’, ‘511017’),
(2014, 6, ‘11.4.00022’, ‘511015’),
(2014, 6, ‘11.4.00022’, ‘511012’),
(2014, 6, ‘11.4.00002’, ‘511013’),
(2014, 6, ‘11.4.00002’, ‘511017’),
(2014, 6, ‘11.4.00021’, ‘511017’),
(2014, 6, ‘11.4.00021’, ‘511015’),
(2014, 6, ‘11.4.00021’, ‘511012’);

Nah…. Yang jadi pertanyaan temen2 adalah…. bagaimana mencari mahasiswa yang mengambil mata kuliah tertentu dan di tampilkan, nim, nama,prodi, namamk dan sks dari tabel ambilkrs.

Oke cara pertama adalah kita cek field apa saja yang akan ditampilkan, menurut data diatas (saya sesuaikan filed dari script SQLnya ) adalah select nim, nama,  prodi, nmmk,sks from ….. where makul selanjutnya adalah kita sesuaikan script Sql kita dengan permisalah tabel mhs kita ganti adaftarmk kita ganti bambilkrs kita ganti jadi akan menghasilkan script seperti ini :

Script – Dengan Parameter Where ‘Kode Mata Kuliah’

select a.nim,a.nama,a.prodi, b.nmmk,b.sks from ambilkrs c join daftarmk b on b.kdmk = c.kdmk join mhs a on c.nim = a.nim where c.kdmk=’511012′

Bagaimana Hasilnya jika kita jalankan script tersebut [saya menggunakan phpmyadmin via browser] dan hasilnya seperti ini hasil1

Nah….. Bagaimana Cara kedua jika kita menggunakan parameter pencarian berdasarkan nama mata kuliahnya langsung ?
begini caranya pada kolom where c.kdmk=’511012′ kita ganti menjadi where b.nmmk like ‘Pemrograman%’ .
Nah… itu gimana kalau kata yang dicari ada di belakang? jawabannya begini….. ganti menjadi where b.nmmk like ‘%Internet‘ . Kalau kata yang kita cari ada di tengah? ganti menjadi where b.nmmk like ‘%Lanjut%’.

Script selengkapnya Cek dibawah ini :
Script – Dengan Parameter pencarian ‘Nama Matakuliah’

select a.nim,a.nama,a.prodi, b.nmmk,b.sks from ambilkrs c join daftarmk b on b.kdmk = c.kdmk join mhs a on c.nim = a.nim where b.nmmk like ‘Pemrograman%’

Sekian Catatan Dari ane, semoga membantu kawan2…..
jika ada yang merasa kesulitan bisa menghubungi ane, kalau pas longgar pasti secepatnya saya bantu.

Tinggalkan Balasan