Klausa INNER JOIN dalam MySQL

MySQL: Klausa INNER JOIN menggabungkan beberapa tabel

Oleh: Fairuz el Said

Pada tutorial MySQL kali ini, akan kita bahas tentang Klausa INNER JOIN yang berfungsi untuk menyajikan data/informasi dari beberapa tabel yang memiliki beberapa relasi.

 

Sintaks Klausa INNER JOIN

SELECT field1, field2, field3...
FROM tabel1
INNER JOIN tabel2
ON tabel1.nama_kolom=tabel2.nama_kolom;

atau

SELECT field1, field2, field3...
FROM tabel1
INNER JOIN tabel2
ON tabel1.nama_kolom=tabel2.nama_kolom;

Catatan Penting: Klausa INNER JOIN dan JOIN memiliki fungsi yang sama dalam MySQL.

Klausa INNER JOIN jika diilustarasikan dalam diagram Venn akan tampak sebagai gambar berikut:

klausa INNER JOIN

klausa INNER JOIN

Database Demo untuk Klausa INNER JOIN

Sebelum diberikan contoh penggunaan Klausa INNER JOIN, maka persiapkanlah database dan tabel-tabel berikut ini:

  • Buat database perpustakaan
mysql> CREATE DATABASE perpustakaan;
Query OK, 1 row affected (0.05 sec)
  • Aktifkan database perpustakaan
mysql> USE perpustakaan;
Database changed
  • Buat tabel fakultas, dengan struktur sebagai berikut
mysql> CREATE TABLE fakultas(
    -> kode_fakultas CHAR(1) PRIMARY KEY,
    -> nama_fakultas VARCHAR(30));
Query OK, 0 rows affected (0.16 sec)
  • Isi data tabel fakultas
mysql> INSERT INTO fakultas
    -> VALUES('1', 'Teknik'),
    ->       ('2', 'Ekonomi'),
    ->       ('3', 'Pertanian'),
    ->       ('4', 'Keguruan dan Ilmu Pendidikan');
Query OK, 4 rows affected (0.05 sec)
Records: 4  Duplicates: 0  Warnings: 0
  • Buat tabel prodi
mysql> CREATE TABLE prodi(
    ->   kode_prodi CHAR(2) PRIMARY KEY,
    ->   kode_fakultas CHAR(1),
    ->   Nama_prodi VARCHAR(30));
Query OK, 0 rows affected (2.34 sec)
  • Isi data tabel prodi
mysql> INSERT INTO prodi
    -> VALUES('11', '1', 'Teknik Informatika'),
    ->       ('21', '2', 'Ekonomi Manajemen'),
    ->       ('22', '2', 'Ekonomi Akuntansi'),
    ->       ('31', '3', 'Agroteknologi'),
    ->       ('41', '4', 'Pendidikan Sejarah'),
    ->       ('42', '4', 'Pendidikan Matematika'),
    ->       ('43', '4', 'Bimbingan Konseling');
Query OK, 7 rows affected (0.22 sec)
Records: 7  Duplicates: 0  Warnings: 0
  • Buat tabel mahasiswa
mysql> CREATE TABLE mahasiswa(
    ->   npm CHAR(12) PRIMARY KEY,
    ->   kode_prodi CHAR(2),
    ->   nama_mahasiswa VARCHAR(50),
    ->   alamat VARCHAR(100),
    ->   jk CHAR(1),
    ->   angkatan YEAR,
    ->   tempat_lahir VARCHAR(50),
    ->   tgl_lahir DATE);
Query OK, 0 rows affected (0.19 sec)
  • Isi Tabel mahasiswa
mysql> INSERT INTO mahasiswa
    -> VALUES('08111110001','17','Hari Setyawan', 'Bantul',      'L',2008,'Sinkawang','1991/09/11'),
    ->       ('09121110001','21','Adnin Els Said','Sleman',      'P',2009,'Bantul',   '1991/07/21'),
    ->       ('09121110002','21','Indra Birowo',  'Sleman',      'L',2009,'Bantul',   '1991/06/21'),
    ->       ('09131110001','31','Fahmi Idris',   'Gunung Kidul','L',2009,'Jepara',   '1991/04/02'),
    ->       ('08211110001','11','Firyal Fahira', 'Bantul',      'P',2008,'Sinkawang','1991/09/12'),
    ->       ('10221111001','22','Fatih El Said', 'Sleman',      'L',2010,'Bantul',   '1992/07/23'),
    ->       ('10321111002','32','Zulhikan Abdan','Sleman',      'L',2010,'Bantul',   '1992/06/27'),
    ->       ('10411110001','41','Fahmi Idris',   'Gunung Kidul','L',2010,'Jepara',   '1992/05/22');
Query OK, 8 rows affected (0.09 sec)
Records: 8  Duplicates: 0  Warnings: 0

Contoh Klausa INNER JOIN

  • Tampilkan nama_mahasiswa dan nama_prodi
mysql> SELECT nama_mahasiswa, nama_prodi
    -> FROM prodi
    -> INNER JOIN mahasiswa
    -> ON prodi.kode_prodi = mahasiswa.kode_prodi;
+----------------+--------------------+
| nama_mahasiswa | nama_prodi         |
+----------------+--------------------+
| Firyal Fahira  | Teknik Informatika |
| Adnin Els Said | Ekonomi Manajemen  |
| Indra Birowo   | Ekonomi Manajemen  |
| Fahmi Idris    | Agroteknologi      |
| Fatih El Said  | Ekonomi Akuntansi  |
| Fahmi Idris    | Pendidikan Sejarah |
+----------------+--------------------+
6 rows in set (0.00 sec)
  • Tampilkan nama_fakultas dan nama_prodi
mysql> SELECT nama_fakultas, nama_prodi
    -> FROM fakultas
    -> INNER JOIN prodi
    -> ON fakultas.kode_fakultas = prodi.kode_fakultas;
+------------------------------+-----------------------+
| nama_fakultas                | nama_prodi            |
+------------------------------+-----------------------+
| Teknik                       | Teknik Informatika    |
| Ekonomi                      | Ekonomi Manajemen     |
| Ekonomi                      | Ekonomi Akuntansi     |
| Pertanian                    | Agroteknologi         |
| Keguruan dan Ilmu Pendidikan | Pendidikan Sejarah    |
| Keguruan dan Ilmu Pendidikan | Pendidikan Matematika |
| Keguruan dan Ilmu Pendidikan | Bimbingan Konseling   |
+------------------------------+-----------------------+
7 rows in set (0.00 sec)
  • Tampilkan nama_fakultas dan semua kolom tabel prodi
mysql> SELECT nama_fakultas, prodi.*
    -> FROM fakultas
    -> INNER JOIN prodi
    -> ON fakultas.kode_fakultas = prodi.kode_fakultas;
+------------------------------+------------+---------------+-----------------------+
| nama_fakultas                | kode_prodi | kode_fakultas | Nama_prodi            |
+------------------------------+------------+---------------+-----------------------+
| Teknik                       | 11         | 1             | Teknik Informatika    |
| Ekonomi                      | 21         | 2             | Ekonomi Manajemen     |
| Ekonomi                      | 22         | 2             | Ekonomi Akuntansi     |
| Pertanian                    | 31         | 3             | Agroteknologi         |
| Keguruan dan Ilmu Pendidikan | 41         | 4             | Pendidikan Sejarah    |
| Keguruan dan Ilmu Pendidikan | 42         | 4             | Pendidikan Matematika |
| Keguruan dan Ilmu Pendidikan | 43         | 4             | Bimbingan Konseling   |
+------------------------------+------------+---------------+-----------------------+
7 rows in set (0.00 sec)

<ul>
	<li>Tampilkan semua kolom mahasiswa dan nama prodi</li>
</ul>


mysql> SELECT mahasiswa.*, nama_prodi
    -> FROM prodi
    -> INNER JOIN mahasiswa
    -> ON prodi.kode_prodi = mahasiswa.kode_prodi;
+-------------+------------+----------------+--------------+------+----------+--------------+------------+--------------------+
| npm         | kode_prodi | nama_mahasiswa | alamat       | jk   | angkatan | tempat_lahir | tgl_lahir  | nama_prodi         |
+-------------+------------+----------------+--------------+------+----------+--------------+------------+--------------------+
| 08211110001 | 11         | Firyal Fahira  | Bantul       | P    |     2008 | Sinkawang    | 1991-09-12 | Teknik Informatika |
| 09121110001 | 21         | Adnin Els Said | Sleman       | P    |     2009 | Bantul       | 1991-07-21 | Ekonomi Manajemen  |
| 09121110002 | 21         | Indra Birowo   | Sleman       | L    |     2009 | Bantul       | 1991-06-21 | Ekonomi Manajemen  |
| 09131110001 | 31         | Fahmi Idris    | Gunung Kidul | L    |     2009 | Jepara       | 1991-04-02 | Agroteknologi      |
| 10221111001 | 22         | Fatih El Said  | Sleman       | L    |     2010 | Bantul       | 1992-07-23 | Ekonomi Akuntansi  |
| 10411110001 | 41         | Fahmi Idris    | Gunung Kidul | L    |     2010 | Jepara       | 1992-05-22 | Pendidikan Sejarah |
+-------------+------------+----------------+--------------+------+----------+--------------+------------+--------------------+
6 rows in set (0.06 sec)

  • Tampilkan nama_mahasiswa, nama_prodi, dan nama_fakultas
mysql> SELECT nama_mahasiswa, nama_prodi, nama_fakultas
    -> FROM (fakultas INNER JOIN prodi
    -> ON fakultas.kode_fakultas = prodi.kode_fakultas)
    -> INNER JOIN mahasiswa
    -> ON prodi.kode_prodi = mahasiswa.kode_prodi;
+----------------+--------------------+------------------------------+
| nama_mahasiswa | nama_prodi         | nama_fakultas                |
+----------------+--------------------+------------------------------+
| Firyal Fahira  | Teknik Informatika | Teknik                       |
| Adnin Els Said | Ekonomi Manajemen  | Ekonomi                      |
| Indra Birowo   | Ekonomi Manajemen  | Ekonomi                      |
| Fatih El Said  | Ekonomi Akuntansi  | Ekonomi                      |
| Fahmi Idris    | Agroteknologi      | Pertanian                    |
| Fahmi Idris    | Pendidikan Sejarah | Keguruan dan Ilmu Pendidikan |
+----------------+--------------------+------------------------------+

Materi Terkait

Sumber

Tuliskan komentar anda

Komentar

Tinggalkan Balasan