Friday, 17 August 2018

Cara menggambung beberapa table MySql

Disini ada beberapa tabel antara lain:
mahasiswa = nim, nama, jk
matakuliah = kodemk, mk, sks
nilai = id, nim, kodemk, nilai

 

Membuat tabel mahasiswa :

CREATE TABLE mahasiswa (
nim INT(10) PRIMARY KEY,
nama VARCHAR(25),
jk VARCHAR(10));

 

Membuat tabel matakuliah :

CREATE TABLE matakuliah (
kodemk VARCHAR(10) PRIMARY KEY,
mk VARCHAR(30),
sks INT(2));

 

Membuat tabel nilai :

CREATE TABLE nilai (
id INT(10) PRIMARY KEY AUTO_INCREMENT,
nim INT(10),
kodemk VARCHAR(10),
nilai INT(10));

 

Pada tabel nilai kan membutuhkan tabel mahasiswa dan matakuliah?
Nah bagaimana caranya menggabung tabel mahasiswa dan tabel matakulaih kedalam tabel nilai ?
Begini caranya :

Menggabungkan tabel menggunakn NATURAL JOIN

SELECT * FROM nilai NATURAL JOIN mahasiswa NATURAL JOIN matakuliah;

 

Semua tabel sudah menjadi satu
Nah bagaimana caranya untuk menampilkan nama, mk dan nilai?

Begini caranya :
Tinggal tanda * diganti dengan nama, mk, nilai (nama harus sesuai dengan field tabel mahasiswa, mk sesuai dengan field tabel matakuliah, nilai sesuai dengan field tabel nilai. Semua harus sesuai dengan tabelnya kalau tidak akan terjadi error).

SELECT nama, mk, nilai FROM nilai NATURAL JOIN mahasiswa NATURAL JOIN matakuliah;

 

Menampilkan nilai dengan nim: 111

SELECT nama, mk, nilai FROM nilai NATURAL JOIN mahasiswa NATURAL JOIN matakuliah WHERE nim='111';

 

Menggabungkan tabel menggunakn LEFT JOIN

SELECT * FROM nilai LEFT JOIN mahasiswa ON nilai.nim=mahasiswa.nim LEFT JOIN matakuliah ON nilai.kodemk=matakuliah.kodemk;

 

Kalau menggunakan LEFT JOIN field yang ada di tabel nilai harus sama dengan field PRIMARY KEY tabel mahasiswa dan field PRIMARY KEY matakuliah. Kalau tidak ada akan menjadi error

nilai.nim = maksudnya nilai adalah nama tabel nilai dan nim field dari tabel nilai
mahasiswa.nim = mahasiswa adalah nama tabel mahasiswa dan nim field PRIMARY KEY dari tabel mahasiswa

 

Untuk menampilkan nim, nama, mk, nilai, sks:

SELECT mahasiswa.nim, mahasiswa.nama, matakuliah.mk, nilai.nilai, matakuliah.sks FROM nilai LEFT JOIN mahasiswa ON nilai.nim=mahasiswa.nim LEFT JOIN matakuliah ON nilai.kodemk=matakuliah.kodemk;

 

Menampilkan nilai dengan nim: 114

SELECT mahasiswa.nim, mahasiswa.nama, matakuliah.mk, nilai.nilai, matakuliah.sks FROM nilai LEFT JOIN mahasiswa ON nilai.nim=mahasiswa.nim LEFT JOIN matakuliah ON nilai.kodemk=matakuliah.kodemk WHERE mahasiswa.nim='114';


Share :