Anda di halaman 1dari 9

QUERY MULTI TABEL (JOIN)

SQL mempunyai kemampuan untuk menggabungkan dua tabel atau lebih guna
membentuk sebuah informasi. Prosesnya disebut dengan join. Begitu juga tabel hasilnya.
Beberapa hal yang perlu diperhatikan dalam query multi tabel :
 Setiap kolom disebutkan dengan bentuk :
nama_tabel.nama_kolom
 Tabel-tabel yang dilibatkan dalam query perlu disebutkan dalam klausa
from dengan antartabel dipisah oleh tanda koma.
from nama_tabel1, nama_tabel2,.. , nama_tabelN
 Kondisi dalam klausa WHERE menentukan macam join yang terbentuk

RELASI ANTAR TABEL


Syarat dari query multi tabel adalah adanya relasi antar tabel yang terlibat. Relasi
mengisyaratkan adanya persamaan dalam pemakaian sebuah field/kolom. Adapun syarat
dalam pembangunan relasi adalah menghubungkan field-field yang sama, penulisannya
sama, tipe dan ukurannya sama dan isi yang sama. Relasi ini diketikkan pada klausa
where query antar tabel untuk tabel-tabel yang digunakan saja

Perintah Dasar :
select nama_tabel1.nama_kolom1, nama_tabel2.nama_kolom2,nama_tabel2.kolom1
from nama_tabel1, nama_tabel2
where nama_tabel1.kolomrelasi = nama_tabel2.kolomrelasi;

contoh 1:

Tampilkan jadwal mata kuliah yang didapatkan dari table ajar.

Analisa:

 Kode dan nip dari table ajar perlu direlasikan dengan table kuliah dan dosen, supaya informasi
jadwal kuliah lebih jelas
 Kolom kode pada table ajar berelasi dengan kode pada table kuliah
 Kolom nip pada table ajar berelasi dengan nip pada table dosen

Jawab:

Contoh 2:

TAmpilkan nama-nama mahasiswa yang mendapatkan nilai A beserta mata kuliahnya.

Analisa:

 NIlai didapatkan dari table ambil. Pada table tersebut hanya ada informasi no_bp dan kode mata
kuliah
 Untuk mendapatkan nama mahasiswa perlu dilakukan join antara table ambil dan mahasiswa
dengan no_bp sebagai kolom relasi
 Untuk mendapatkan nama mata kuliah perlu direlasikan dengan table ambil dan kode sebagai
kolom relasinya.

Jawab:
MENGGUNAKAN ALIAS
Nama tabel yang digunakan dalam query antartabel bisa diberi nama alias. Bentuk
pemberian nama alias :
select alias1.kolom, alias2.kolom
from tabel1 alias1, tabel2 alias2
where kondisi;

Contoh 1 :
Tampilkan nama mahasiswa, mata kuliah yang diambil dan nilai, untuk
mahasiswa yang mendapat nilai D atau E
Catatan :
Disini menggunakan alias M untuk tabel mahasiswa, K untuk tabel kuliah dan A
untuk tabel ambil
Perintahnya menggunakan alias :
Contoh 2 :
Tampilkan jadwal kuliah yang terdiri dari hari, nama mata kuliah yang diajar,
dosennya siapa dan lokalnya dimana.
Catatan :
Disini menggunakan J sebagai alias tabel ajar, K sebagai alias tabel kuliah dan D
sebagai alias untuk tabel dosen

OPERATOR NATURAL JOIN


Operator Natural join akan melakukan operasi equijoin dengan memperlakukan
nama-nama kolom yang sama sebagai penghubung antar tabel
Contoh :
Tampilkan nama-nama mahasiswa yang mendapat nilai A atau B untuk seluruh
mata kuliah
Perintahnya (memakai relasi ) :

Perintahnya (memakai operator natural join) :

Latihan :
1. Cari data mahasiswa, siapa saja yang mengambil mata kuliah Struktur Data

Select kuliah.mata_kuliah,mahasiswa.*

From ambil,kuliah,mahasiswa

Where ambil.kode= kuliah.kode and

Mahasiswa.no_bp=ambil=no_bp and

Mata_kuliah= ‘struktur data’;

2. Tampilkan data mata kuliah dan total mahasiswa yang mengambil mata kuliah tersebut

Select kuliah.*,count(nama) as “jumlah mahasiswa”

From kuliah natural join ambil natural join mahasiswa

Group by kode;

3. Hitung jumlah sks yang diambil oleh masing-masing mahasiswa.

Select nama,sum(sks) as “jumlah sks”

From kuliah natural join ambil natural join mahasiswa

Group by nama;

4. Buatkan query untuk mendapatkan data mata kuliah apa saja yang diambil oleh Albinanto

Select from kuliah.*,nama

From kuliah natural join ambil natural join mahasiswa

Where nama=”albinanto”;

5. Cari dosen yang tidak mendapatkan mata kuliah yang akan diajarkan.

Select * from dosen

Where nip not in (select nip from ajar);


1. Hitung total mahasiswa per mata kuliah serta nilai tertinggi pada mata kuliah
bersangkutan
Select kuliah.mata_kuliah,count(nama) as “jumlah”,min(nilai) as “tertinggi”
From kuliah natural join ambil natural join mahasiswa
Group by mata_kuliah;
2. Apakah ada mahasiswa yang tidak kuliah pada semester2.jika ada tampilkan

Select nama

From kuliah natural join ambil natural join mahasiswa

Where semester=1 and semester=3;

3. Buat tampilan sbb:

Mata_kuliah Nilai Jumlah mahasiswa


Algo prog 8
Algo prog B 5
Basis data A 7
…. … …
…. …. ..

Select mata_kuliah,nilai,count(nama) as “ jlh mahasiswa”


From kuliah natural join ambil natural join mahasiswa
Group by mata_kuliah,nilai;

4. Hitung berapa orang dosen yang tidak mengajar pada semester 3


5. Apakah ada dosen mengajar lebih dari satu mata kuliah,,buktikan dengan query

Anda mungkin juga menyukai