JOIN merupakan perintah di MySQL untuk menggabungkan 2 table atau lebih berdasarkan kolom yang sama
JOIN di MySQL dibagi menjadi 3 cara
- INNER JOIN
- LEFT JOIN
- 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.
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).
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)
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