join di mysql
Database

Belajar MySQL Lanjut : Cara Menggunakan JOIN

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.

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).

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)

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

Leave a Reply

Your email address will not be published. Required fields are marked *