Artikel Inner Join

Inner Join

Assalamualaikum Wr. Wb.
Hallo, kali ini saya akan membahas mengenai Inner Join.

Inner Join atau biasa disebut "join" saja,
Inner Join digunakan ketika user ingin melihat display data yang berasal dari dua tabel atau lebih yang berbeda. Ada dua cara penggabungan tabel dalam inner join ini, yaitu penggabungan dengan klausa WHERE dan penggabungan dengan klausa INNER JOIN
Tujuan dari menggabungkan tabel adalah untuk menyajikan informasi secara lebih detail.

Bentuk umum dari klausa inner join adalah sebagai berikut :
SELECT tabel1.*, tabel2.*
FROM tabel1 INNER JOIN tabel2
ON tabel1.PK=tabel2.FK;
Keterangan :
PK = Primary Key
FK = Foreign Key
Query INNER JOIN memiliki beberapa variasi, yaitu SELECT..INNER JOIN..ON dan SELECT..INNER JOIN..USING. Saya akan membahasnya satu persatu.

Cara Menggabungkan Tabel MySQL dengan query SELECT..INNER JOIN..ON

Format dasar dari penulisan query SELECT..INNER JOIN..ON adalah:
SELECT nama_kolom_tampil FROM nama_tabel_pertama INNER JOIN nama_tabel_kedua
ON nama_kolom_join_tabel_pertama = nama_kolom_join_tabel_kedua
  • nama_kolom_tampil adalah nama dari kolom yang akan kita tampilkan, bisa semua kolom dalam tabel, atau hanya kolom tertentu saja.
  • nama_tabel_pertama adalah nama tabel pertama yang akan digabung.
  • nama_tabel_kedua adalah nama tabel kedua yang akan digabung.
  • nama_kolom_join_tabel_pertama adalah nama kolom yang akan digunakan sebagai join dari tabel pertama.
  • nama_kolom_join_tabel_kedua adalah nama kolom yang akan digunakan sebagai join dari tabel kedua.
Syarat untuk INNER JOIN adalah kedua tabel harus memiliki sebuah kolom dengan nilai yang sama yang akan kita gunakan dalam proses JOIN. Dalam contoh kita, kolom tersebut adalah kolom NIP dari tabel nama_dosen, dan kolom NIP_dosen dari tabel mata_kuliah. Perhatikan walaupun keduanya berisi NIP, namun nama kolomnya berbeda.
Query untuk SELECT..INNER JOIN..ON tabel mata_kuliah dengan daftar_dosen adalah:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
mysql> SELECT nama_matkul,jumlah_SKS,nama_dosen FROM mata_kuliah
INNER JOIN daftar_dosen ON NIP_dosen=NIP;
+-------------------+------------+---------------+
| nama_matkul       | jumlah_SKS | nama_dosen    |
+-------------------+------------+---------------+
| Database          |          4 | Susi Indriani |
| Fisika Dasar      |          2 | Tia Santrini  |
| Jaringan Komputer |          3 | Rubin Hadi    |
| Matematika Dasar  |          4 | Sabrina Sari  |
| Mikro Prosesor    |          2 | Tia Santrini  |
| Sistem Operasi    |          2 | Sabrina Sari  |
| Teknik Kompilasi  |          2 | Tia Santrini  |
+-------------------+------------+---------------+
7 rows in set (0.00 sec)
Dari hasil query SELECT diatas, saya menggabungkan tabel mata_kuliah dan daftar_dosen untuk mendapatkan tampilan seluruh mata kuliah, jumlah sks, dan nama dosen yang mengajar. Kita menggunakan tabel mata_kuliah sebagai tabel pertama, dan tabel daftar_dosen sebagai tabel kedua.

Cara Menggabungkan Tabel MySQL dengan SELECT..INNER JOIN..USING

Cara JOIN kedua adalah menggunakan USING sebagai pengganti ON untuk query INNER JOIN.
Format dasar dari penulisan query SELECT..INNER JOIN..USING adalah:
SELECT nama_kolom_tampil FROM nama_tabel_pertama INNER JOIN
nama_tabel_kedua USING (nama_kolom_join)
  • nama_kolom_tampil adalah nama dari kolom yang akan kita tampilkan, bisa semua kolom dalam tabel, atau hanya kolom tertentu saja.
  • nama_tabel_pertama adalah nama tabel pertama yang akan digabung.
  • nama_tabel_kedua adalah nama tabel kedua yang akan digabung.
  • nama_kolom_join adalah nama kolom yang akan digunakan sebagai join.
Syarat untuk INNER JOIN..USING adalah kedua tabel harus memiliki nama kolom yang sama. Dalam contoh kita, kolom tersebut adalah kolom NIP. Namun karena nama kolom NIP untuk tabel mata_kuliah adalah NIP_dosen, sedangkan pada kolom daftar_dosen kolom NIP hanya NIP saja, maka kita harus menyamakannya. Untuk hal ini saya memutuskan kedua kolom akan bernama NIP_dosen.

mysql> ALTER TABLE daftar_dosen CHANGE NIP NIP_dosen CHAR(10);
Query OK, 8 rows affected (0.08 sec)
Records: 8  Duplicates: 0  Warnings: 0
Setelah kedua kolom NIP bernama sama, saatnya kita mengabungkan kedua tabel ini
1
2
3
4
5
6
7
8
9
10
11
12
13
14
mysql> SELECT nama_matkul, jumlah_SKS, nama_dosen
FROM mata_kuliah INNER JOIN daftar_dosen USING (NIP_dosen);
+-------------------+------------+---------------+
| nama_matkul       | jumlah_SKS | nama_dosen    |
+-------------------+------------+---------------+
| Database          |          4 | Susi Indriani |
| Fisika Dasar      |          2 | Tia Santrini  |
| Jaringan Komputer |          3 | Rubin Hadi    |
| Matematika Dasar  |          4 | Sabrina Sari  |
| Mikro Prosesor    |          2 | Tia Santrini  |
| Sistem Operasi    |          2 | Sabrina Sari  |
| Teknik Kompilasi  |          2 | Tia Santrini  |
+-------------------+------------+---------------+
7 rows in set (0.00 sec)
Hasilnya sama persis dengan SELECT..INNER JOIN..ON, hanya berbeda cara penulisan.

Seperti itulah cara menggabungkan tabel menggunakan inner join.
Oke, sekian artikel mengenai Inner Join. Sampai jumpa lagi :)
Terimakasih atas kunjungannya.

Komentar

Postingan populer dari blog ini

Artikel Use Case Diagram

Pemrograman PHP #Part 1

Android Studio