SQL Inner Join
A. Penjelasan
SQL Inner Join adalah Bentuk kondisi join dimana di antara 2 atau lebih tabel yang ingin di join memiliki hubungan sehingga semua isi tabel yang di pilih bisa di tampilkan

B. Bentuk Syntax Umum
-
Join dengan 2 tabel
SELECT nama_kolom(s) FROM tabel1,tabel2 WHERE tabel1.nama_kolom = tabel2.nama_kolom; atau SELECT nama_kolom(s) FROM tabel1 INNER JOIN tabel2 ON tabel1.nama_kolom = tabel2.nama_kolom;
-
Join dengan 3 tabel
SELECT nama_kolom(s) FROM tabel1, tabel2, tabel3 WHERE tabel1.nama_kolom = tabel2.nama_kolom AND tabel2.nama_kolom = tabel3.nama_kolom; atau SELECT nama_kolom(s) FROM ((tabel1 INNER JOIN tabel2 ON tabel1.nama_kolom = tabel2.nama_kolom) INNER JOIN tabel3 ON tabel2.nama_kolom = tabel3.nama_kolom);
C. Implementasi
Contoh Case 1
-
Desaigner Database :
Database = db_magang_2
-
Soal dan Penyelesaian :
a) SQL Join Tabel
Join Tabel dalam 2 tabel
1. Menampilkan seluruh data pada tabel siswa dan tabel agama
SELECT *
FROM siswa, agama
WHERE siswa.id_agama=agama.id;
- Output
2. Menampilkan data dengan kolom (nisn siswa, nama siswa, nama agama)
SELECT siswa.nisn, siswa.nama, agama.nama
FROM siswa, agama
WHERE siswa.id_agama=agama.id;
- Output
Join Tabel dalam 3 tabel
Menampilkan data dengan kolom (nama siswa, nama mata pelajaran, nilai angka)
SELECT siswa.nama,mata_pelajaran.nama, nilai_mata_pelajaran.nilai_angka
FROM siswa, mata_pelajaran, nilai_mata_pelajaran
WHERE siswa.id=nilai_mata_pelajaran.id_siswa
AND nilai_mata_pelajaran.id_mata_pelajaran=mata_pelajaran.id
- Output
b) SQL Inner Join
Inner Join dalam 2 tabel
1. Menampilkan seluruh data pada tabel siswa dan tabel agama
SELECT *
FROM siswa INNER JOIN agama
ON siswa.id_agama=agama.id;
- Output
2. Menampilkan data dengan kolom (nisn siswa, nama siswa, nama agama)
SELECT siswa.nisn, siswa.nama, agama.nama
FROM siswa INNER JOIN agama
ON siswa.id_agama=agama.id;
- Output
Inner Join dalam 3 tabel
Menampilkan data dengan kolom (nama siswa, nama mata pelajaran, nilai angka)
SELECT siswa.nama,mata_pelajaran.nama, nilai_mata_pelajaran.nilai_angka
FROM ((siswa INNER JOIN nilai_mata_pelajaran ON siswa.id=nilai_mata_pelajaran.id_siswa)
INNER JOIN mata_pelajaran ON nilai_mata_pelajaran.id_mata_pelajaran=mata_pelajaran.id);
- Output
Contoh Case 2
-
Desaigner Database :
Database = ukk_11102016_sbd_153140914111007_hildakhairunnisa
-
Soal dan Penyelesaian :
a) SQL Join Tabel
Join Tabel dalam 2 tabel
1. Menampilkan seluruh data pada tabel dokter dan tabel spesialis
SELECT *
FROM tb_dokter, tb_spesialis
WHERE tb_spesialis.KD_SPESIALIS = tb_dokter.KD_SPESIALIS;
- Output
2. Menampilkan data dengan kolom (nama dokter, jam mulai jaga dan jam selesai jaga)
SELECT tb_dokter.NAMA_DOKTER, tb_jaga.JAM_MULAI, tb_jaga.JAM_SELESAI
FROM tb_dokter, tb_jaga
WHERE tb_dokter.KD_DOKTER=tb_jaga.KD_DOKTER;
- Output
Join Tabel dalam 3 tabel
Menampilkan data dengan kolom (nama dokter, nama spesialis, jam mulai jaga, jam selesai jaga)
SELECT tb_dokter.NAMA_DOKTER, tb_spesialis.SPESIALIS, tb_jaga.JAM_MULAI, tb_jaga.JAM_SELESAI
FROM tb_dokter, tb_spesialis, tb_jaga
WHERE tb_dokter.KD_SPESIALIS=tb_spesialis.KD_SPESIALIS
AND tb_dokter.KD_DOKTER=tb_jaga.KD_DOKTER;
- Output
b) SQL Inner Join
Inner Join dalam 2 tabel
1. Menampilkan seluruh data pada tabel dokter dan tabel spesialis
SELECT *
FROM tb_dokter INNER JOIN tb_spesialis
ON tb_spesialis.KD_SPESIALIS = tb_dokter.KD_SPESIALIS;
- Output
2. Menampilkan data dengan kolom (nama dokter, jam mulai jaga dan jam selesai jaga)
SELECT tb_dokter.NAMA_DOKTER, tb_jaga.JAM_MULAI, tb_jaga.JAM_SELESAI
FROM tb_dokter INNER JOIn tb_jaga
ON tb_dokter.KD_DOKTER=tb_jaga.KD_DOKTER;
- Output
Inner Join dalam 3 tabel
Menampilkan data dengan kolom (nama dokter, nama spesialis, jam mulai jaga, jam selesai jaga)
SELECT tb_dokter.NAMA_DOKTER, tb_spesialis.SPESIALIS, tb_jaga.JAM_MULAI, tb_jaga.JAM_SELESAI
FROM ((tb_dokter INNER JOIN tb_spesialis ON tb_dokter.KD_SPESIALIS = tb_spesialis.KD_SPESIALIS)
INNER JOIN tb_jaga ON tb_dokter.KD_DOKTER = tb_jaga.KD_DOKTER);
- Output
Contoh Case 3
-
Desaigner Database :
Database = db_magang_1
-
Soal dan Jawaban case :
1. Menampilkan data dengan kolom (nama kecamatan, nama kabupaten)
SELECT kecamatan.nama_kecamatan,kabupaten.nama_kabupaten
FROM kecamatan,kabupaten
WHERE kecamatan.id_kabupaten=kabupaten.id_kabupaten
atau
SELECT x.nama_kecamatan,y.nama_kabupaten
FROM kecamatan x,kabupaten y
WHERE x.id_kabupaten=y.id_kabupaten
atau
SELECT kecamatan.nama_kecamatan,kabupaten.nama_kabupaten
FROM kecamatan INNER JOIN kabupaten
ON (kecamatan.id_kabupaten=kabupaten.id_kabupaten)
- Output
2. Menampilkan data dengan kolom (nama kecamatan, nama kabupaten, nama provinsinya)
SELECT kecamatan.nama_kecamatan,kabupaten.nama_kabupaten, provinsi.nama_provinsi
FROM kecamatan, kabupaten, provinsi
WHERE kecamatan.id_kabupaten=kabupaten.id_kabupaten AND kabupaten.id_provinsi=provinsi.id_provinsi
- Output
3. Menampilkan data dengan kolom (nama kecamatan, nama provinsinya)
SELECT kecamatan.nama_kecamatan, provinsi.nama_provinsi
FROM kecamatan, kabupaten, provinsi
WHERE kecamatan.id_kabupaten=kabupaten.id_kabupaten AND kabupaten.id_provinsi=provinsi.id_provinsi
- Output
Contoh Case 4
-
Desaigner Database :
Database = db_magang_1
-
Soal dan Penyelesaian :
Penambahan tabel negara
Tabel negara
- id
- nama
Tabel provinsi
- id_provinsi
- id_negara
- nama_provinsi
Tabel kabupaten
- id_kabupaten
- id_provinsi
- nama_kabupaten
- jumlah_penduduk
Tabel kecamatan
- id_kecamatan
- id_kabupaten
- nama_kecamatan
Langkah – langkah :
SELECT (nama field / nama kolom yang akan ditampilkan)
FROM (tabel sesuai field / kolom yang akan ditampilkan)
WHERE (kondisi dimana tabelA.Key=tabelB.Key)
AND (penambahan kondisi)
1. Menampilkan data dengan kolom (nama kecamatan, nama kabupaten ,nama provinsinya , nama negara)
SELECT kecamatan.nama_kecamatan , kabupaten.nama_kabupaten , provinsi.nama_provinsi , negara.nama
FROM kecamatan , kabupaten , provinsi , negara
WHERE kecamatan.id_kabupaten = kabupaten.id_kabupaten
AND kabupaten.id_provinsi = provinsi.id_provinsi
AND negara.id = provinsi.id_negara
2. Menampilkan data dengan kolom (nama kecamatan, nama kabupaten)
SELECT kecamatan.nama_kecamatan,kabupaten.nama_kabupaten
FROM kecamatan,kabupaten
WHERE kecamatan.id_kabupaten=kabupaten.id_kabupaten
Atau
SELECT x.nama_kecamatan,y.nama_kabupaten
FROM kecamatan x,kabupaten y
WHERE x.id_kabupaten=y.id_kabupaten
Atau
SELECT kecamatan.nama_kecamatan,kabupaten.nama_kabupaten
FROM kecamatan INNER JOIN kabupaten
ON (kecamatan.id_kabupaten=kabupaten.id_kabupaten)
- Output