Cara menggunakan inner join mysql

JOIN merupakan perintah di MySQL untuk menggabungkan 2 table atau lebih berdasarkan kolom yang sama

JOIN di MySQL dibagi menjadi 3 cara

  1. INNER JOIN
  2. LEFT JOIN
  3. RIGHT JOIN

Sebelum kita melanjutkan pembahasan tentang join kita akan membuat 2 table yaitu table mahasiswa dan transaksi

Table mahasiswa -> Data mahasiswa 
Table transaksi -> Data transaksi peminjaman buku perpus

CREATE TABLE mahasiswa
(
    nim INT(10),
    nama VARCHAR(100),
    alamat VARCHAR(100),
    PRIMARY KEY(nim)
);

CREATE TABLE transaksi
(
    id_transaksi INT(10),
    nim INT(10),
    buku VARCHAR(100),
    PRIMARY KEY(id_transaksi)
);

Masukkan data untuk table mahasiswa dan transaksi

INSERT INTO mahasiswa 
VALUES 
(21400200,"faqih","bandung"),
(21400201,"ina","jakarta"),
(21400202,"anto","semarang"),
(21400203,"dani","padang"),
(21400204,"jaka","bandung"),
(21400205,"nara","bandung"),
(21400206,"senta","semarang");

INSERT INTO transaksi 
VALUES 
(1,21400200,"Buku Informatika"),
(2,21400202,"Buku Teknik Elektro"),
(3,21400203,"Buku Matematika"),
(4,21400206,"Buku Fisika"),
(5,21400207,"Buku Bahasa Indonesia"),
(6,21400210,"Buku Bahasa Daerah"),
(7,21400211,"Buku Kimia");

> SELECT * FROM mahasiswa;
+----------+-------+----------+
| nim      | nama  | alamat   |
+----------+-------+----------+
| 21400200 | faqih | bandung  |
| 21400201 | ina   | jakarta  |
| 21400202 | anto  | semarang |
| 21400203 | dani  | padang   |
| 21400204 | jaka  | bandung  |
| 21400205 | nara  | bandung  |
| 21400206 | senta | semarang |
+----------+-------+----------+
7 rows in set (0.00 sec)

> SELECT * FROM transaksi;
+--------------+----------+-----------------------+
| id_transaksi | nim      | buku                  |
+--------------+----------+-----------------------+
|            1 | 21400200 | Buku Informatika      |
|            2 | 21400202 | Buku Teknik Elektro   |
|            3 | 21400203 | Buku Matematika       |
|            4 | 21400206 | Buku Fisika           |
|            5 | 21400207 | Buku Bahasa Indonesia |
|            6 | 21400210 | Buku Bahasa Daerah    |
|            7 | 21400211 | Buku Kimia            |
+--------------+----------+-----------------------+
7 rows in set (0.00 sec)

Note : Pelajari materi DDL dan DML untuk membuat struktur table dan nilainya

INNER JOIN

INNER JOIN membandingkan record di setiap table untuk dicek apakah nilai sama atau tidak.

Cara menggunakan inner join mysql
INNER JOIN

Jika nilai kedua table sama maka akan terbentuk table baru yang hanya menampilkan record yang sama dari kedua table

Cara penulisannya

SELECT *
FROM table1
INNER JOIN table2
ON table1.field = table2.field;

Contoh, Mencari data dari table mahasiswa dan tranksaksi berdasarkan kolom NIM

SELECT *
FROM mahasiswa
INNER JOIN transaksi
ON mahasiswa.nim = transaksi.nim;
+----------+-------+----------+--------------+----------+---------------------+
| nim      | nama  | alamat   | id_transaksi | nim      | buku                |
+----------+-------+----------+--------------+----------+---------------------+
| 21400200 | faqih | bandung  |            1 | 21400200 | Buku Informatika    |
| 21400202 | anto  | semarang |            2 | 21400202 | Buku Teknik Elektro |
| 21400203 | dani  | padang   |            3 | 21400203 | Buku Matematika     |
| 21400206 | senta | semarang |            4 | 21400206 | Buku Fisika         |
+----------+-------+----------+--------------+----------+---------------------+
4 rows in set (0.00 sec)

Table mahasiswa mempunyai 7 record dan table transaksi mempunyai 7 record

Jika menggabungkan kedua data menggunakan INNER JOIN berdasarkan kolom NIM maka hanya tampil 4 data mahasiswa yang meminjam buku di perpustakaan

LEFT JOIN

LEFT JOIN menghasilkan nilai berdasarkan table kiri (table1) dan nilai yang sama di table kanan (table2).

Cara menggunakan inner join mysql
LEFT JOIN

Jika table kanan tidak nilainya ada maka akan diisi nilai NULL

SELECT *
FROM table1
LEFT JOIN table2
ON table1.field = table2.field;

Contoh, Mencari data dari table mahasiswa dan tranksaksi berdasarkan kolom NIM

SELECT *
FROM mahasiswa
LEFT JOIN transaksi
ON mahasiswa.nim = transaksi.nim;
+----------+-------+----------+--------------+----------+---------------------+
| nim      | nama  | alamat   | id_transaksi | nim      | buku                |
+----------+-------+----------+--------------+----------+---------------------+
| 21400200 | faqih | bandung  |            1 | 21400200 | Buku Informatika    |
| 21400202 | anto  | semarang |            2 | 21400202 | Buku Teknik Elektro |
| 21400203 | dani  | padang   |            3 | 21400203 | Buku Matematika     |
| 21400206 | senta | semarang |            4 | 21400206 | Buku Fisika         |
| 21400201 | ina   | jakarta  |         NULL |     NULL | NULL                |
| 21400204 | jaka  | bandung  |         NULL |     NULL | NULL                |
| 21400205 | nara  | bandung  |         NULL |     NULL | NULL                |
+----------+-------+----------+--------------+----------+---------------------+
7 rows in set (0.00 sec)

Table kiri (mahasiswa) akan menjadi table master dan mencari nilai yang sama di table transaksi. Apabila ada mahasiswa yang tidak meminjam buku maka diberi nilai NULL

RIGHT JOIN

Konsep RIGHT JOIN hampir sama seperti LEFT JOIN hanya yang menjadi master adalah table kanan (table 2)

Cara menggunakan inner join mysql
RIGHT JOIN

Jika table kiri tidak nilainya ada maka akan diisi nilai NULL

SELECT *
FROM table1
RIGHT JOIN table2
ON table1.field = table2.field;

Contoh, Mencari data dari table mahasiswa dan tranksaksi berdasarkan kolom NIM

SELECT *
FROM mahasiswa
RIGHT JOIN transaksi
ON mahasiswa.nim = transaksi.nim;
+----------+-------+----------+--------------+----------+-----------------------+
| nim      | nama  | alamat   | id_transaksi | nim      | buku                  |
+----------+-------+----------+--------------+----------+-----------------------+
| 21400200 | faqih | bandung  |            1 | 21400200 | Buku Informatika      |
| 21400202 | anto  | semarang |            2 | 21400202 | Buku Teknik Elektro   |
| 21400203 | dani  | padang   |            3 | 21400203 | Buku Matematika       |
| 21400206 | senta | semarang |            4 | 21400206 | Buku Fisika           |
|     NULL | NULL  | NULL     |            5 | 21400207 | Buku Bahasa Indonesia |
|     NULL | NULL  | NULL     |            6 | 21400210 | Buku Bahasa Daerah    |
|     NULL | NULL  | NULL     |            7 | 21400211 | Buku Kimia            |
+----------+-------+----------+--------------+----------+-----------------------+
7 rows in set (0.00 sec)

Terdapat 7 transaksi peminjaman buku di perpustakaan. Bagi transaksi yang NIM mahasiswa tidak ada di table mahasiswa akan diberi nilai NULL

Materi MySQL dibagi menjadi beberapa artikel:

Cara Install XAMPP di Windows dan Linux
Belajar MySQL Dasar : Tutorial MySQL untuk Pemula
Belajar MySQL Dasar : Memahami perintah DDL
Belajar MySQL Dasar : Memahami perintah DML
Belajar MySQL Dasar : Memahami perintah DQL
Belajar MySQL Dasar : Memahami perintah DCL
Belajar MySQL Dasar : Memahami perintah TCL

Belajar MySQL Lanjut : Cara Menggunakan JOIN
Belajar MySQL Lanjut : Cara Membuat Stored Procedure
Belajar MySQL Lanjut : Cara Membuat VIEW
Belajar MySQL Lanjut : Cara Membuat TRIGGER
Belajar MySQL Lanjut : DDL MySQL dengan Python
Belajar MySQL Lanjut : DML MySQL dengan Python
Belajar MySQL Lanjut : DQL MySQL dengan Python

Post navigation

Apa itu inner join di mysql?

Kesimpulannya, Inner Join adalah suatu perintah pada SQL Server digunakan untuk menggabungkan beberapa tabel . Sehingga, akan menampilkan data-data yang mempunyai nilai sama antar tabel dalam sebuah database.

Apakah syarat untuk menggunakan inner join?

Syarat untuk INNER JOIN adalah kedua tabel harus memiliki sebuah kolom dengan nilai yang sama. Kolom tersebut yang akan digunakan dalam proses JOIN. Pada contoh kita, kolom itu adalah kolom NIP dari tabel nama_dosen, dan kolom NIP_dosen dari tabel mata_kuliah.

Apa fungsi dari inner join dalam query?

Inner join menggabungkan data dari dua tabel kapan pun ditemukan nilai mirip dalam bidang umum di kedua tabel.

Apa yang digunakan untuk menghubungkan 2 atau lebih tabel dalam database?

Untuk menggabungkan 2 (dua) atau lebih tabel, kita dapat menggunakan bentuk perintah JOIN.