Uploaded by sekarsalsaarifah123

JOIN - SMBD - 2021

advertisement
QUERY ANTAR
TABEL
JOIN
JOIN

Join merupakan sebuah operasi yang digunakan untuk mendapatkan data gabungan dari
dua tabel atau lebih. Join menghubungkan antar beberapa table sehingga terbentuk satu
set data yang baru.

Klausa JOIN digunakan untuk menggabungkan baris dari dua atau lebih tabel,
berdasarkan kolom terkait diantara mereka.

Operasi ini digunakan dalam perintah SELECT dan biasanya digunakan untuk
memperoleh data secara detail dari table-table yang saling terkait (memiliki relasi)
JOIN
Tabel Mahasiswa
Tabel KRS
Bagaimana Query untuk menampilkan NIM, NAMA, Kelas dan Nilai dari setiap siswa?
Tabel Mahasiswa
Tabel KRS
Perhatikan bahwa kolom “NIM" di tabel “KRS" mengacu pada “NIM" di tabel “Mahasiswa".
Dua tabel di atas dihubungkan oleh kolom “NIM".
CROSS JOIN (CARTESIAN JOIN)

Cross join menghasilkan output berupa kombinasi dari semua baris yang terdapat dalam
tabel-tabel
yang
digabungkan
baik
yang
berpasangan
maupun
yang
tidak
berpasangan. Pada kenyataannya join jenis ini jarang bahkan tidak pernah dipakai.
Meskipun begitu, jenis join inilah yang merupakan dasar dari join antar tabel.
CROSS JOIN (CARTESIAN JOIN)

Cross join merupakan jenis join yang tidak memakai persyaratan, sementara jenis join lainnya
memerlukan persyaratan. Persyaratan yang dimaksud adalah data pada kolom foreign key di
tabel yang merujuk harus sama dengan data pada kolom primary key di tabel yang dirujuk.
Cross join dapat dilakukan pada sembarang tabel, baik tabel yang saling berhubungan
maupun tidak.
Catatan:
Kolom-kolom_foreign_key pada tabel_2 harus mereferensi ke kolom_primary_key pada tabel_1.
INNER JOIN
(INNER) JOIN :
Mengembalikan rekaman
yang memiliki nilai yang
cocok di kedua tabel
INNER JOIN

Kata kunci INNER JOIN memilih record yang memiliki nilai yang cocok di kedua
tabel.

Inner join menghasilkan output berupa kombinasi baris-baris yang memiliki
pasangan saja.

Kombinasi baris yang tidak berpasangan akan dieliminasi atau tidak digunakan

Baris – baris yang tidak memiliki pasangan pada tabel lainnya juga tidak
dimunculkan
INNER JOIN
Sintaks INNER JOIN (Cara 1)
SELECT tabel_1.kolom, tabel_2.kolom
FROM tabel_1, tabel_2
WHERE
tabel_1.kolom_kunci_1=tabel_2.kolom_kunci_2
INNER JOIN

Sintaks INNER JOIN (Cara 2)
SELECT tabel_1.kolom, tabel_2.kolom
FROM tabel_1 INNER JOIN tabel_2
ON tabel_1.kolom_kunci_1 =
tabel_2.kolom_kunci_2
INNER JOIN
 Untuk INNER JOIN terdapat 2 cara penulisan, yaitu:
 Cara pertama adalah dengan memisahkan daftar tabel yang akan dijoin dengan tanda
koma dan melakukan pengecekan kondisi menggunakan WHERE.
 Cara kedua adalah menggunakan keyword INNER JOIN atau disingkat dengan JOIN saja
di antara dua tabel yang akan di-join-kan dan melakukan pengecekan kondisi dengan
keyword ON.
 Cara pertama lebih singkat dan akan lebih terasa jika yang di-joinkan lebih dari
dua tabel. Hal ini terjadi karena keyword JOIN dan ON merupakan satu
kesatuan yang hanya dapat diterapkan pada dua buah tabel saja. Untuk lebih
dari dua tabel kita harus menuliskan JOIN dan ON berulang kali.
CONTOH

Menampilkan resep,nama pasien dan penyakit pasien.
SELECT resep.kd_resep, pasien.nama, penyakit.penyakit
FROM resep, pasien, penyakit
WHERE resep.kd_pasien=pasien.kd_pasien
AND resep.kd_penyakit=penyakit.kd_penyakit
SELECT resep.kd_resep, pasien.nama, penyakit.penyakit
FROM resep JOIN pasien
ON resep.kd_pasien=pasien.kd_pasien
JOIN penyakit
ON resep.kd_penyakit=penyakit.kd_penyakit
Walaupun penulisannya lebih
panjang tapi bentuk yang kedua
lebih dianjurkan karena
membutuhkan memory yang
lebih sedikit dan prosesnya lebih
cepat. Hal ini akan terasa sekali
jika melibatkan tabel-tabel
dengan data yang banyak.
Latihan
Contoh : Tampilkan Nama Dosen dan Kode Matakuliah yang diampu!
Sintaks :

Menampilkan Nama Dosen dan Kode Matakuliah yang diampu

Nama Dosen berada pada tabel DOSEN, sedangkan Kode Matakuliah berada pada tabel
KELAS. Sehingga kita perlu melakukan Select dari tabel DOSEN dan KELAS dengan Atribut
Kunci sebagai penghubung tabel DOSEN dan KELAS adalah atribut NIP.
Menggabungkan 3 tabel
SELECT table1.coloum_name, table2.coloum_name, table3.coloum_name
FROM ((table1 INNER JOIN table 2 ON table1.coloum_name = table2.coloum_name)
INNER JOIN table3 ON table2.coloum_name = table3.coloum_name);
Latihan
Contoh : Tampilkan Nama Dosen, Kelas dan matakuliah yang diampu!
SELECT dosen.NAMA, kelas.IDKELAS, matakuliah.MATAKULIAH
FROM ((dosen INNER JOIN kelas ON dosen.NIP = kelas.NIP) INNER
JOIN matakuliah ON kelas.KODE = matakuliah.KODE);
•LEFT (OUTER) JOIN :
•Mengembalikan semua catatan dari tabel kiri,
OUTER JOIN
Outer join hampir sama dengan inner join,
hanya saja baris yang tidak memiliki
pasangan tetap akan ditampilkan.
dan catatan yang cocok dari tabel kanan
•RIGHT (OUTER) JOIN :
•Mengembalikan semua record dari tabel kanan,
dan record yang cocok dari tabel kiri
•FULL (OUTER) JOIN :
•Mengembalikan semua record ketika ada
kecocokan di tabel kiri atau kanan
Syntax
SELECT tabel_1.kolom, tabel_2.kolom
FROM tabel_1 [LEFT|RIGHT|FULL OUTER JOIN] tabel_2
ON tabel_1.kolom_kunci_1=tabel_2.kolom_kunci_2
LEFT JOIN

Kata kunci LEFT JOIN mengembalikan semua record dari tabel kiri (table1), dan record
yang cocok dari tabel kanan (table2).

Data yang ada pada tabel sebalah kiri akan ditampilkan semua sesuai pasangannya,
jika ada data yang tidak memiliki pasangan, pada tabel sebelah kanan akan diisikan
NULL.
LEFT JOIN

LEFT JOIN Syntax
Catatan: Dalam beberapa database LEFT JOIN disebut LEFT OUTER JOIN
RIGHT JOIN
 Kata kunci RIGHT JOIN mengembalikan semua record dari tabel
kanan (table2), dan record yang cocok dari tabel kiri (table1).
 Data yang ada pada tabel sebelah kanan akan ditampilkan semua
sesuai pasangannya, jika ada data yang tidak memiliki pasangan,
pada tabel sebelah kiri akan diisikan NULL.
RIGHT JOIN

Sintaks RIGHT JOIN
Catatan: Dalam beberapa database, RIGHT JOIN disebut RIGHT OUTER JOIN.
FULL JOIN

Kata kunci FULL OUTER JOIN mengembalikan semua rekaman ketika ada kecocokan
dalam catatan tabel kiri (tabel1) atau kanan (tabel2).

Catatan: FULL OUTER JOIN berpotensi mengembalikan set hasil yang sangat besar!

Tip: FULL OUTER JOIN dan FULL JOIN adalah sama.

Semua data dari tabel – tabel yang di join ditampilkan, baik itu yang secara left outer
join, right outer join maupun inner join.
FULL JOIN

FULL OUTER JOIN Syntax
Contoh : Tampilkan Nama Dosen dan Kode Matakuliah yang
diampu!
SELECT tabel_1.kolom, tabel_2.kolom
FROM tabel_1 [LEFT | RIGHT | FULL OUTER JOIN] tabel_2
ON tabel_1 . kolom_kunci_1 = tabel_2 . kolom_kunci_2
Menampilkan Nama Dosen dan Kode matakuliah dengan Left Join
Menampilkan Nama Dosen dan Kode Matakuliah dengan Right Join
Menampilkan Nama Dosen dan Kode Matakuliah dengan Full Join
SOAL LATIHAN
Tabel Ambil_Mk
Tabel Mahasiswa
Tabel Matakuliah
1. Tampilkan Nama Mahasiswa dan Kode Matakuliah yang diambilnya!
2. Tampilkan Nama Mahasiswa dan Nama Matakuliah yang diambilnya!
1. Tampilkan Nama Mahasiswa dan Kode Matakuliah yang
diambilnya!
2. Tampilkan Nama Mahasiswa dan Nama Matakuliah
yang diambilnya
Download