2. Inner Join
INNER JOIN adalah salah satu jenis join dalam SQL yang digunakan untuk menggabungkan baris dari dua atau lebih tabel berdasarkan kondisi yang ditentukan. Pada INNER JOIN
, hanya baris yang memiliki nilai yang cocok di kedua tabel yang akan ditampilkan dalam hasil query. Jika tidak ada kecocokan, baris tersebut akan diabaikan.
Rumus INNER JOIN
Penjelasan
- SELECT : Memilih kolom-kolom yang ingin ditampilkan dari kedua tabel.
- FROM : Memilih tabel pertama.
- INNER JOIN : Menggabungkan tabel kedua.
- ON : Menentukan kondisi penggabungan antar-tabel (biasanya relasi kunci primer dan kunci asing).
Contoh soal:
Terdapat tabel mahasiswa :
CREATE TABLE Mahasiswa (
id_mahasiswa INT PRIMARY KEY,
nama VARCHAR(100),
jurusan VARCHAR(100)
);
INSERT INTO Mahasiswa (id_mahasiswa, nama, jurusan)
VALUES
(1, 'Andi', 'Informatika'),
(2, 'Budi', 'Akuntansi'),
(3, 'Cici', 'Informatika'),
(4, 'Dodi', 'Akuntansi');
id_mahasiswa | nama | jurusan |
---|---|---|
1 | Andi | Informatika |
2 | Budi | Akuntansi |
3 | Cici | Informatika |
4 | Dodi | Akuntansi |
dan terdapat tabel Nilai:
CREATE TABLE Nilai (
id_nilai INT PRIMARY KEY,
id_mahasiswa INT,
mata_kuliah VARCHAR(100),
nilai CHAR(1),
FOREIGN KEY (id_mahasiswa) REFERENCES Mahasiswa(id_mahasiswa)
);
INSERT INTO Nilai (id_nilai, id_mahasiswa, mata_kuliah, nilai)
VALUES
(1, 1, 'Matematika', 'A'),
(2, 1, 'Fisika', 'B'),
(3, 2, 'Akuntansi', 'A'),
(4, 3, 'Matematika', 'A'),
(5, 4, 'Ekonomi', 'B');
id_nilai | id_mahasiswa | mata_kuliah | nilai |
---|---|---|---|
1 | 1 | Matematika | A |
2 | 1 | Fisika | B |
3 | 2 | Akuntansi | A |
4 | 3 | Matematika | A |
5 | 4 | Ekonomi | B |
Keterangan
- Untuk membuat tabel kita harus membuat kolomnya terlebih dahulu
id_mahasiswa INT
baru bisa di tambahkan indexFOREIGN KEY
nya - Untuk melakukan join dibutuhkan index
FOREIGN KEY
yang mengambil referensi dari tabel aslinya
Bagaimana caranya menyatukan ke 2 tabel di atas untuk menampilkannya hanya dalam 1 tabel sehingga dapat tampil seperti tabel dibawah ini:
nama | mata_kuliah | nilai |
---|---|---|
Andi | Matematika | A |
Andi | Fisika | B |
Budi | Akuntansi | A |
Cici | Matematika | A |
Dodi | Ekonomi | B |
SELECT Mahasiswa.nama, Nilai.mata_kuliah, Nilai.nilai
FROM Mahasiswa
INNER JOIN Nilai
ON Mahasiswa.id_mahasiswa = Nilai.id_mahasiswa;
Pada contoh di atas, SQL INNER JOIN menggabungkan tabel Mahasiswa dan Nilai berdasarkan kolom id_mahasiswa yang ada di kedua tabel. Hanya mahasiswa yang memiliki nilai dalam tabel Nilai yang ditampilkan, dan hasilnya adalah kombinasi data mahasiswa dengan mata kuliah serta nilai mereka.
Contoh lainnya dalam sebuah website :
Dari gambar di atas kita dapat menganalisa bahwasannya ada 2 buah tabel yakni Blog dan User. Blog terdiri dari gambar, tanggal, judul, isi, created_by sedangkan user terdiri dari id dan nama kalau di query bisa seperti ini:
Soal
-
Dalam sebuah aplikasi HRD, ada tabel Karyawan dan Proyek yang dikerjakan oleh karyawan.
id_karyawan nama_karyawan departemen 1 Andi IT 2 Budi Finance id_proyek id_karyawan nama_proyek 1 1 Aplikasi Mobile 2 2 Laporan Keuangan dari ke 2 tabel tersebut tampilkan nama, departemen dan nama proyek yang dikerjakan
-
Analisa Gambar dibawah ini ada berapa tabel dan apa saja isinya lalu buatkan query inner joinnya :