Cara Menggabungkan Table Pada MySQL

Cara Menggabungkan Table Pada MySQL

93

Pada tutorial kali ini, kita akan mempelajari cara menggabungkan table pada mysql, dimana materi ini dikenal dengan istilah Join.

Join pada MySQL digunakan untuk menggabungkan 2 table atau lebih. Contohnya adalah seperti ini.

Anggap saja saya memiliki 2 table, yakni table Product, dan Customer yang nilainya seperti table di bawah ini :

Table Product

Id_product Nama_product Harga Tgl_masuk
1 Apel 3000 2012-04-15
2 Jeruk 2500 2012-04-15

Table Customer

Id_customer Nama_customer Id_product
1 Burhan 1
2 Ranu 2
3 Toni 2
4 Janet 1

Kemudian dari table di atas, saya hanya ingin mengetahui masing – masing Customer ini membeli buah apa. Berarti kolom yang perlu saya tampilkan hanyalah kolom Nama_customer, dan kolom Nama_Product.

Namun pada SQL, tentu ambigu bila hanya menyeleksi table Nama_customer, dan Nama_Product. Oleh karena itu SQL membuat cara tersendiri, yakni dengan proses pencocokan nilai terhadap kolom yang memang sudah disediakan untuk menjadi pengikat bagi kedua kolom ini.

Yakni kolom Id_product pada table Product, dan kolom Id_product pada table Customer (coba anda perhatikan lagi contoh kedua table di atas), dimana nilainya adalah sama.

Sehingga gambaran pencocokannya adalah seperti ini :

Nama_customer Customer.Id_product Product.Id_product Nama_product
Burhan 1 1 Apel
Ranu 2 2 Jeruk
Toni 2 2 Jeruk
Janet 1 1 Apel

Jadi ketika di tampilkan akan menjadi seperti ini :

Nama_customer Customer.Id_product Product.Id_product Nama_product
Burhan 1 1 Apel
Ranu 2 2 Jeruk
Toni 2 2 Jeruk
Janet 1 1 Apel

Proses penggabungan table pada SQL terbagi menjadi 4 kategori utama, yakni Inner Join, Left Join, Right Join, dan Full Join.

Namun pada tutorial kali ini hanya akan membahas seputar Inner Join. Gambaran penggabungan Inner Join adalah seperti ini :

cara menggabungkan table pada mysql

Dimana bila pada Inner Join, hanya akan menampilkan baris – baris yang memiliki kecocokan dari kolom yang menjadi pengikatnya.

Sebelum ke praktek, pertama – tama buat databasenya lebih dulu, namun jika anda telah memiliki database, table, dan kolom sendiri. Silahkan lompati langkah ini.

MySQL

create database if not exists cms;

Kemudian buat table – nya,

MySQL

create table if not exists product(

     id_product int(2) primary key not null auto_increment,

     nama_product varchar(100) not null,

     harga int(2) not null,

     tgl_masuk date null

     );

Query OK, 0 rows affected (0.80 sec)

Nah, sekarang langkah terakhir adalah memasukan 10 record ke dalam Database.

MySQL

insert into product values

     (1, "apel", 3000, "2012-04-15"),

     (2, "jeruk", 2500, "2012-04-15"),

     (3, "pisang", 3000, "2012-04-16"),

     (4, "melon", 13000, "2012-04-16"),

     (5, "semangka", 25000, "2012-04-16"),

     (6, "nanas", 10000, "2012-04-17"),

     (7, "durian", 30000, "2012-04-17"),

     (8, "anggur", 15000, "2012-04-18"),

     (9, "duku", 15000, "2012-04-19"),

     (10, "alpukat", 5000, "2012-04-20");

Query OK, 10 rows affected (0.10 sec)

Records: 10  Duplicates: 0  Warnings: 0

Untuk melihat apakah 10 record di atas berhasil dimasukkan, kita dapat menggunakan perintah select*from product.

MySQL

select*from product;

+------------+--------------+-------+------------+

| id_product | nama_product | harga | tgl_masuk  |

+------------+--------------+-------+------------+

|          1 | apel         |  3000 | 2012-04-15 |

|          2 | jeruk        |  2500 | 2012-04-15 |

|          3 | pisang       |  3000 | 2012-04-16 |

|          4 | melon        | 13000 | 2012-04-16 |

|          5 | semangka     | 25000 | 2012-04-16 |

|          6 | nanas        | 10000 | 2012-04-17 |

|          7 | durian       | 30000 | 2012-04-17 |

|          8 | anggur       | 15000 | 2012-04-18 |

|          9 | duku         | 15000 | 2012-04-19 |

|         10 | alpukat      |  5000 | 2012-04-20 |

+------------+--------------+-------+------------+

10 rows in set (0.00 sec)

Lalu buat table Customer – nya.

MySQL

create table if not exists customer(

     id_customer int(2) not null primary key,

     nama_customer varchar(50) not null,

     id_product int(2) not null

     );

Query OK, 0 rows affected (0.42 sec)

Dan kita masukan beberapa record pada table Customer.

MySQL

insert into customer values

     (223, "Rudi", 3),

     (443, "Bayu", 6),

     (112, "Lina", 3),

     (665, "Gio", 1),

     (771, "Anis", 2);

Query OK, 5 rows affected (0.09 sec)

Records: 5  Duplicates: 0  Warnings: 0

select*from customer;

+-------------+---------------+------------+

| id_customer | nama_customer | id_product |

+-------------+---------------+------------+

|         112 | Lina          |          3 |

|         223 | Rudi          |          3 |

|         443 | Bayu          |          6 |

|         665 | Gio           |          1 |

|         771 | Anis          |          2 |

+-------------+---------------+------------+

5 rows in set (0.00 sec)

Kemudian saya hanya ingin menampilkan nama customer, dan nama product yang dibelinya, maka aturan sintaksnya adalah seperti ini :

MySQL

SELECT kolom_1, kolom_2

FROM table_1

INNER JOIN table_2

ON nama_kolom_table_1 = nama_kolom_table_2;

Jadi query yang harus saya tulis adalah :

MySQL

SELECT nama_customer, nama_product

FROM customer

INNER JOIN product

ON customer.id_product = product.id_product;

+---------------+--------------+

| nama_customer | nama_product |

+---------------+--------------+

| Lina          | pisang       |

| Rudi          | pisang       |

| Bayu          | nanas        |

| Gio           | apel         |

| Anis          | jeruk        |

+---------------+--------------+


Demikian tutorial dari cara menggabungkan table pada mysql.

Keywords: cara menggabungkan tabel mysql, join mysql tutorial

Share: