penggabungan beberapa table join (1)
TRANSCRIPT
Penggabungan beberapa table
Penggabungan beberapa table INNER, LEFT, RIGHT, OUTERINNER JOINMenggabungkan 2 atau lebih table yang mempunyai kesamaan suatu atribut
Format 1. menggunakan sintak JOIN
SELECT tabel1.kolom1,tabel2.kolom2
FROM tabel1
INNER JOIN tabel2 ON tabel1.kolompenghubung=tabel2.kolompenghubung
Contoh :
SELECT buku.judul,kategori_buku.kategori
FROM buku
INNER JOIN kategori_buku ON buku.kategori_buku=kategori_buku.kode_kategori
Format 2, tidak menggunakan sintak JOIN
SELECT tabel1.kolom1,tabel2.kolom2
FROM tabel1,tabel2
WHERE tabel1.kolompenghubung=tabel2.kolompenghubung
Contoh :
SELECT buku.judul,kategori_buku.kategori
FROM buku,kategori_buku
WHERE buku.kategori_buku=kategori_buku.kode_kategori
mysql> SELECT buku.judul,kategori_buku.kategori
-> FROM buku,kategori_buku
-> WHERE buku.kategori_buku=kategori_buku.kode_kategori
-> ;
+--------------------------+-------------+
| judul | kategori |
+--------------------------+-------------+
| Ilmu alam disekitar kita | Ilmu Alam |
| Sosiologi kita | Ilmu SOsial |
| Dasar Pemrograman | Teknologi |
| Pemrograman Lanjut | Teknologi |
| Sastra Jawa | Sastra |
+--------------------------+-------------+
5 rows in set (0.00 sec)
mysql> SELECT buku.judul,kategori_buku.kategori
-> FROM buku
-> INNER JOIN kategori_buku ON buku.kategori_buku=kategori_buku.kode_katego
i
-> ;
+--------------------------+-------------+
| judul | kategori |
+--------------------------+-------------+
| Ilmu alam disekitar kita | Ilmu Alam |
| Sosiologi kita | Ilmu SOsial |
| Dasar Pemrograman | Teknologi |
| Pemrograman Lanjut | Teknologi |
| Sastra Jawa | Sastra |
+--------------------------+-------------+
5 rows in set (0.00 sec)
Menggunakan Alias
mysql> SELECT b.judul,k.kategori
-> FROM buku b,kategori_buku k
-> WHERE b.kategori_buku=k.kode_kategori;
+--------------------------+-------------+
| judul | kategori |
+--------------------------+-------------+
| Ilmu alam disekitar kita | Ilmu Alam |
| Sosiologi kita | Ilmu SOsial |
| Dasar Pemrograman | Teknologi |
| Pemrograman Lanjut | Teknologi |
| Sastra Jawa | Sastra |
+--------------------------+-------------+
5 rows in set (0.00 sec)
mysql> SELECT b.judul,k.kategori
-> FROM buku b
-> INNER JOIN kategori_buku k ON b.kategori_buku=k.kode_kategori;
+--------------------------+-------------+
| judul | kategori |
+--------------------------+-------------+
| Ilmu alam disekitar kita | Ilmu Alam |
| Sosiologi kita | Ilmu SOsial |
| Dasar Pemrograman | Teknologi |
| Pemrograman Lanjut | Teknologi |
| Sastra Jawa | Sastra |
+--------------------------+-------------+
5 rows in set (0.00 sec)
LEFT JOIN
Menggabungkan 2 atau lebih table berdasarkan table yang sebelah kiri, yang pertama disebutkan.
insert into buku values
('B06','Memasak itu asik','siti','merapi','2008','M','Baik','2009-01-05'),
('B07','Mengetahui Bakat Anak','setry','merbabu','2007','L','Baik','2010-01-05');insert into kategori_buku values
(H,Ilmu hukum),
(T,Ilmu Teknik),
(S,Ilmu Santet);
mysql> SELECT b.judul,k.kategori
-> FROM buku b
-> LEFT JOIN kategori_buku k ON b.kategori_buku=k.kode_kategori;
+--------------------------+-------------+
| judul | kategori |
+--------------------------+-------------+
| Dasar Pemrograman | Teknologi |
| Pemrograman Lanjut | Teknologi |
| Ilmu alam disekitar kita | Ilmu Alam |
| Sosiologi kita | Ilmu SOsial |
| Sastra Jawa | Sastra |
| Memasak itu asik | NULL |
| Mengetahui Bakat Anak | NULL |
+--------------------------+-------------+
7 rows in set (0.00 sec)
RIGHT JOIN
Menggabungkan 2 tabel atau lebih berdasarkan tabel sebelah kanan yaitu tabel yang disebutkan setelah JOIN.
mysql> SELECT b.judul,k.kategori
-> FROM buku b
-> RIGHT JOIN kategori_buku k ON b.kategori_buku=k.kode_kategori;
+--------------------------+-------------+
| judul | kategori |
+--------------------------+-------------+
| Ilmu alam disekitar kita | Ilmu Alam |
| Sosiologi kita | Ilmu SOsial |
| Dasar Pemrograman | Teknologi |
| Pemrograman Lanjut | Teknologi |
| Sastra Jawa | Sastra |
| NULL | Ilmu hukum |
| NULL | Ilmu Teknik |
| NULL | Ilmu Santet |
+--------------------------+-------------+
8 rows in set (0.00 sec)
LATIHAN DAN CONTOH.
Contoh : 1. Menampilkan nama anggota dan jenis anggotanya.?SELECT a.nama,j.jenis_anggotaFROM anggota aINNER JOIN jenis_anggota j ON a.jenis_anggota=j.kode_jenis+---------------------+--------------------+
| nama | jenis_anggota |
+---------------------+--------------------+
| Asih widyastuti | Anggota Biasa |
| Catur Wiyanti | Anggota Biasa |
| Halimatus Anita S | Anggota Luar Biasa |
| Muh. Yusron Al Amin | Anggota Luar Biasa |
| Ardian M Prastiawan | Pengurus |
| Tya | Pengurus |
+---------------------+--------------------+
2. Menampilkan nama anggota, sedang meminjam judul buku apa, dari tanggal berapa?SELECT a.nama,b.judul,p.tgl_pinjamFROM peminjaman pINNER JOIN anggota a ON a.nomor_anggota=p.nomor_anggotaINNER JOIN buku b ON b.kode_buku=p.kode_buku
+-------------------+--------------------------+------------+
| nama | judul | tgl_pinjam |
+-------------------+--------------------------+------------+
| Asih widyastuti | Dasar Pemrograman | 2010-03-01 |
| Asih widyastuti | Pemrograman Lanjut | 2010-03-01 |
| Catur Wiyanti | Ilmu alam disekitar kita | 2010-03-10 |
| Catur Wiyanti | Sosiologi kita | 2010-03-10 |
| Halimatus Anita S | Sastra Jawa | 2010-03-15 |
| Halimatus Anita S | Sastra Jawa | 2010-03-16 |
+-------------------+--------------------------+------------+
3. Menampilkan buku yang belom dikembalikan?SILAKAN DICOBA4. Menampilkan statistik nama anggota dan berapa buku yang dipinjam?SELECT a.nama,count(1) as jumlahFROM peminjaman pINNER JOIN anggota a ON a.nomor_anggota=p.nomor_anggotaGROUP BY p.nomor_anggota+-------------------+--------+
| nama | jumlah |
+-------------------+--------+
| Asih widyastuti | 2 |
| Catur Wiyanti | 2 |
| Halimatus Anita S | 2 |
+-------------------+--------+
5. Menampilkan statistik judul buku dan berapa kali dipinjam?SILAKAN DICOBA6. Menampilkan kategori buku dan jumlah denda?SELECT k.kategori,sum(p.denda) as jumlah_dendaFROM peminjaman p
INNER JOIN buku b ON p.kode_buku=b.kode_buku
INNER JOIN kategori_buku k ON b.kategori_buku=k.kode_kategoriGROUP BY k.kategori;
+-------------+--------------+
| kategori | jumlah_denda |
+-------------+--------------+
| Ilmu Alam | 0 |
| Ilmu SOsial | 0 |
| Sastra | 3000 |
| Teknologi | 1000 |
+-------------+--------------+
7. Menampilkan jenis anggota dan jumlah denda?SILAKAN DICOBA