Sebuah cara memahami dasar join pada SQL.
Buat database dengan relasi berikut: Tambahkan data untuk setiap tabel, contoh datanya:
t_Siswa:
S8564 Jaja Surabaya Bandung 1999-08-16 00:00:00
S9857 Budi Surabaya Sidoarjo 1998-12-15 00:00:00
t_Gaji:
IA 500000.0000
IB 600000.0000
IIA 700000.0000
IIB 800000.0000
IIIA 900000.0000
IIIB 1000000.0000
t_Guru:
G1523 Tuti Surabaya IIA
G5623 Siti Malang IIIB
t_Kelas:
1A 1 G1523
1B 1 NULL
2A 2 NULL
2B 2 G5623
3 3 NULL
4 4 NULL
5 5 NULL
6 6 NULL
t_IsiKelas:
1 2007/2008 1A S8564
2 2007/2008 2B S9857
Setelah itu coba perintah join:
use db_Sekolah
select * from t_Siswa
select * from t_Gaji
select * from t_Guru
select * from t_Kelas
select * from t_IsiKelas
--melihat gaji semua guru
select A.Nama,B.Gaji
from t_Guru as A left join t_Gaji as B on A.Golongan=B.Golongan
--menampilkan nama guru dan jenjang kelas yang diajar
select A.No_Induk,A.Nama,B.Jenjang
from t_Guru as A left join t_Kelas as B on A.No_Induk=B.Guru
--menampilkan daftar kelas dan nama guru
select t_Kelas.Kode_Kelas,t_Kelas.Jenjang,t_Guru.Nama
from t_Kelas left join t_Guru on t_Kelas.Guru=t_Guru.No_Induk
--melihat daftar kelas siswa tahun ajaran 2007/2008
select B.Tahun_Ajaran,A.No_Induk,A.Nama,B.Kode_Kelas
from t_Siswa as A left join t_IsiKelas as B on A.No_Induk=B.Siswa where B.Tahun_Ajaran='2007/2008'
--menampilkan gaji dosen dari setiap kelas
select t_Kelas.Kode_Kelas,t_Kelas.Jenjang,t_Gaji.Gaji
from t_Kelas left join t_Guru on t_Kelas.Guru=t_Guru.No_Induk left join t_Gaji on t_Guru.Golongan=t_Gaji.Golongan
--melihat alamat siswa dan alamat guru pengajarnya
select A.Alamat as Alamat_Siswa, D.Alamat as Alamat_Pengajar
from t_Siswa as A left join t_IsiKelas as B on A.No_Induk=B.Siswa left join t_Kelas as C on B.Kode_Kelas=C.Kode_Kelas left join t_Guru as D on C.Guru=D.No_Induk
Coba jenis-jenis join dengan perintah yang sama, tentu dengan hasil yang berbeda:
- Inner join, Menampilkan rekord yang bersesuaian dari kedua tabel. Intersection kalau dalam istilah himpunan.
- Outer join, Menampilkan rekord yang bersesuaian dan rekord yang belum ditampilkan dari kedua tabel. Union dalam istilah himpunan.
- Left join, menampilkan semua record dari tabel pertama dan menampilkan isi tabel kedua yang bersesuaian dengan kondisi tabel pertama.
- Right join, menampilkan semua rekord tabel kedua dan menampilkan isi tabel pertama yang bersesuaian dengan tabel kedua.
g jelas, kasih liat result-nya donk,masa teori doank...
ReplyDeletelagi males dikasih gambar. mas kan lebih pinter, kenapa tidak membuat querynya sendiri?
ReplyDeleteouter join sama inner joinnya kasih coNtoh dong PAk!!!!
ReplyDelete@Anonim
ReplyDeleteDisitu kan sudah ada contoh-contoh join. Coba saja ganti dengan perintah yang lain.
Misalkan:
select t_Kelas.Kode_Kelas,t_Kelas.Jenjang,t_Guru.Nama
from t_Kelas left outer join t_Guru on t_Kelas.Guru=t_Guru.No_Induk
alah mboh mas,,,g mudeng
ReplyDeletedimudeng2in tho mas...
ReplyDeletenyontek nih, bukan karya sendiri
ReplyDelete@anonim
ReplyDelete:-) Saya buat ini untuk bahan ngajar di kampus. Agan ini perhatian banget sih
Nice blog you have here thanks for sharing this
ReplyDelete