Cara menggunakan join function in python

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 join function in python
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 join function in python
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 join function in python
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