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

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 a, daftarmk kita ganti b, ambilkrs kita ganti c 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.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Ads Blocker Image Powered by Code Help Pro

Ads Blocker Detected!!!

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.