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 :
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.
0 Post a Comment:
Gunakan kolom komentar dengan baik dan bijak.