Rabu, 26 Mei 2021

Penggabungan Dua Buah Tabel - INNER JOIN MYSQL

Artikel ini akan membahas tentang bagaimana cara penggabungan dua buah tabel data menggunakan query. Baik ita menggunakan database mysql, untuk melakukan penggabungan data pada dua buah tabel atau lebih ada beberapa cara. Kesempatan kali ini kita akan bahas penggabungan yang disebut dengan JOIN.

Jika belum memiliki tabel dan data silahkan kalian buat terlebih dahulu ya, disini saya sudah memiliki data pada dua tabel, untuk syarat JOIN ini perludiperhatikan. Setiap tabel memiliki Primary Key atau Kunci Utama, Primar Key ini akan digunakan pada tabel lain sebagai Secondary Key. Secondary Key sendiri merupakan Kunci Tamu ditabel lain.

Contoh :

Terdapat dua buah tabel, Tabel A dan Tabel B, Setiap tabel memiliki Primary Key sebut saja Primary pada tabel A adalah (PK A) dan pada tabel B adalah (PK B), untuk melakukan JOIN maka salah satu Primary Key tabel harus menjadi Secondary Key di tabel lain. Lihat ilustrasi pada gambar berikut :


Berhubung kita menggunakan INNER JOIN maka artinya data yang ditampilkan pada kasus inner join ini adalah data yang memiliki pasangan atau data yang memiliki Secondary Key di tabel kedua.

Skema Tabel

 


Agar lebih jelas, skema tabel akan terlihat seperti berikut, kalian dapat membuat duabuah tabel dengan skema berikut ya. Perlu diingat bahwa Primary Key yang akan menjadi Secondary Key ditabel lain harus sama tipe data dan size nya.   Jika Primary Key adalah Integer (5) maka ditabel kedua Secondary Key / Foreign Key juga harus Integer (5).

Query


CREATE TABLE IF NOT EXISTS `users` (
  `id` varchar(5) NOT NULL,
  `name` varchar(12) NOT NULL,
  `date_born` date NOT NULL,
  `email` varchar(25) NOT NULL,
  `phone` varchar(12) NOT NULL,
  `class_id` varchar(3) NOT NULL,
  PRIMARY KEY (`id`)
) DEFAULT CHARSET=utf8;
INSERT INTO `users` (`id`, `name`, `date_born`,`email`,`phone`,`class_id`) VALUES
  ('US001', 'Nardi', '1995-01-21','mymail@gmail.com','08836251','C01'),
  ('US002', 'Agus', '1996-12-12','mymail@gmail.com','08836251','C02'),
  ('US003', 'Fira', '1994-04-11','mymail@gmail.com','08836251','C03'),
  ('US004', 'Lisa', '1997-04-01','mymail@gmail.com','08836251','C02');

CREATE TABLE IF NOT EXISTS `class` (
  `id` varchar(3) NOT NULL,
  `name` varchar(12) NOT NULL,
  PRIMARY KEY (`id`)
) DEFAULT CHARSET=utf8;
INSERT INTO `class` (`id`, `name`) VALUES
  ('C01', 'SILVER'),
  ('C02', 'PREMIUM'),
  ('C03', 'GOLD'),
  ('C04', 'DIAMOND');

Query diatas merupakan query untuk membuat tabel dan meng-insert data kedalam tabel. Sekarang kita coba gunakan query Join, lihat Query berikut ini :

Menggunakan INNER JOIN Query

SELECT 
    users.id,
    users.name,
    users.date_born,
    users.phone,
    class.name AS Class
FROM users INNER JOIN
class ON
users.class_id = class.id

Menggunakan WHERE


SELECT 
	users.id,
	users.name,
	users.date_born,
	users.phone,
	class.name AS Class
FROM users, class WHERE users.class_id = class.id 

Kedua query sql diatas akan sama sama mengeluarkan output yang sama :

Demo

Kesimpulan

Untuk menggabungkan duabuah tabel sebenarnya ada beberapa jenis JOIN, Inner Join, Left Join, Right Join dsb, namun pembahasan kali ini menggunakan INNER JOIN. Membuat penggabungan data cukup mudah, kalian dapat menggunakan query Inner Join ataupun menggunakan Where, hasilnya akan sama saja menjadi inner join. Selain itu dapat juga hanya dengan menggunakan kata JOIN tanpa kata INNER.

Latest
Next Post

post written by:

0 Post a Comment:

Gunakan kolom komentar dengan baik dan bijak.