Belajar query sql join pada MySQL

Belajar query sql join pada MySQL

loading....

Dalam menampilkan sebuah data dari sebuah database seringkali kita harus memampilkan data dari beberapa tabel dalam satu buah sql query. Oleh karena itu kita perlu mengetahui cara nya dan caranya itu menggunakan query sql join.

Baca Juga : Menampilkan Data Dari Database dengan menggunakan Codeigniter 4

Kali ini rumah code akan membahas tentnang bagaimana cara menampilkan data dari database dengan menggunakan query sql join. Query SQL JOIN yang akan dibahas kali ini adalah :

  1. Inner Join
  2. Left Join
  3. Right Join

Berikut ini adalah tabel yang saya gunakan dalam tutorial ini

Tabel Barang

Tabel Barang

CREATE TABLE `barang` (
  `barang_id` double NOT NULL,
  `barang_nama` varchar(30) NOT NULL,
  `barang_qty` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

INSERT INTO `barang` (`barang_id`, `barang_nama`, `barang_qty`) VALUES
(1, 'Tas Wanita', 100),
(2, 'Tas Pria', 100),
(3, 'Baju Wanita', 100),
(4, 'Baju Pria', 100),
(5, 'Celana Wanita', 100),
(6, 'Celana Pria', 100),
(7, 'Kaos Oblong', 100),
(8, 'Kemja Batik', 100);

Tabel Transaksi

Tabel Transaksi

CREATE TABLE `transaksi` (
  `trx_id` double NOT NULL,
  `user_id` varchar(20) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

INSERT INTO `transaksi` (`trx_id`, `user_id`) VALUES
(1, 'andri'),
(2, 'bagas'),
(3, 'heri'),
(4, 'yuli');

Tabel Transaksid

Tabel TransaksiD

CREATE TABLE `trasaksid` (
  `trxD_id` double NOT NULL,
  `trx_id` double NOT NULL,
  `barang_id` double NOT NULL,
  `trx_qty` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

INSERT INTO `trasaksid` (`trxD_id`, `trx_id`, `barang_id`, `trx_qty`) VALUES
(1, 1, 4, 1),
(2, 1, 3, 2),
(3, 2, 8, 1),
(4, 1, 7, 2),
(5, 3, 8, 4),
(6, 3, 1, 5),
(7, 4, 7, 7),
(8, 4, 7, 4);

Tabel User

Tabel User

CREATE TABLE `user` (
  `user_id` varchar(20) NOT NULL,
  `user_password` tinytext DEFAULT NULL,
  `user_email` varchar(50) DEFAULT NULL,
  `user_alias` varchar(50) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;


INSERT INTO `user` (`user_id`, `user_password`, `user_email`, `user_alias`) VALUES
('admin', '21232f297a57a5a743894a0e4a801fc3', 'admin@host.com', 'Admin'),
('adrian', '8c4205ec33d8f6caeaaaa0c10a14138c', 'adrian@gmail.com', 'Adriana'),
('andri', '6bd3108684ccc9dfd40b126877f850b0', 'andri@yahoo.com', 'Andriana'),
('ardi', '0264391c340e4d3cbba430cee7836eaf', 'ardi@gmail.com', 'Ardianan'),
('bagas', 'ee776a18253721efe8a62e4abd29dc47', 'bagas@rc.org', 'Bagas Adi'),
('bima', '7fcba392d4dcca33791a44cd892b2112', 'bima@google.com', 'Bima Satria'),
('herdi', '70ef423c063dfa178e58114b90052a9b', 'herdi@aol.com', 'Herdianan'),
('heri', '6812af90c6a1bbec134e323d7e70587b', 'heri@google.com', 'Heriana'),
('lili', '777bbb7869ae8193249f8ff7d3e59afe', 'lili@bing.com', 'Lilianan'),
('novi', '832f72b7a13b2cedcfb108603a10e2a6', 'novi@gmail.com', 'Noviana'),
('rudi', '1755e8df56655122206c7c1d16b1c7e3', 'rudi@yahoo.com', 'Rudiana'),
('wisnu', '202cb962ac59075b964b07152d234b70', 'wisnu@yahoo.com', 'wisnu i'),
('yuli', '4a01a05a350e1c7710c989f1211245a8', 'yuli@gmail.com', 'Yulianan');

Index / Key dari tabel di atas

ALTER TABLE `barang`
  ADD PRIMARY KEY (`barang_id`);


ALTER TABLE `transaksi`
  ADD PRIMARY KEY (`trx_id`),
  ADD KEY `user_id` (`user_id`);


ALTER TABLE `trasaksid`
  ADD PRIMARY KEY (`trxD_id`),
  ADD KEY `trx_id` (`trx_id`),
  ADD KEY `barang_id` (`barang_id`);


ALTER TABLE `user`
  ADD PRIMARY KEY (`user_id`);


ALTER TABLE `barang`
  MODIFY `barang_id` double NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=9;


ALTER TABLE `transaksi`
  MODIFY `trx_id` double NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5;


ALTER TABLE `trasaksid`
  MODIFY `trxD_id` double NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=9;


ALTER TABLE `trasaksid`
  ADD CONSTRAINT `trasaksid_ibfk_1` FOREIGN KEY (`trx_id`) REFERENCES `transaksi` (`trx_id`),
  ADD CONSTRAINT `trasaksid_ibfk_2` FOREIGN KEY (`barang_id`) REFERENCES `barang` (`barang_id`);
COMMIT;

Baca Juga : Belajar Query Dasar Mysql

INNER JOIN

Ilustrasi Inner Join MysqlFungsi dari Inner Join adalah menampilkan record yang memiliki kesamaan nilai dari dua buah tabel. 

Perintah dasar untuk melakukan inner join adalah sebagai berikut

SELECT nama_kolom
FROM table1
INNER JOIN table2
ON table1.nama_kolom = table2.nama_kolom;

Contoh Inner Join

INNER JOIN 2 Tabel

SELECT trasaksid.trx_id,trasaksid.barang_id,barang.barang_nama FROM trasaksid 
INNER JOIN barang on trasaksid.barang_id = barang.barang_id

data yang ditampilkan dari query join di atas akan seperti gambar di bawah ini

Inner Join 2 tabel

Inner Join 3 Tabel

SELECT trasaksid.trx_id,transaksi.user_id,trasaksid.barang_id,barang.barang_nama FROM ((trasaksid 
INNER JOIN transaksi on trasaksid.trx_id = transaksi.trx_id) 
INNER JOIN barang on trasaksid.barang_id = barang.barang_id)

Perintah di atas akan menampilkan data sebagai berikutInner Join 3 Tabel

LEFT JOIN

Left JoinLeft join adalah sebuah query join untuk menampilkan semua data pada tabel yang berada di sebelah kiri (table1) dan record yang berada pada table2 atau yang berada di sebelah kanan. Jika tabel2 tidak ada isi nya maka data yang ditampilkan adalah null.

Perintah dasar penggunakan query Left Join

SELECT nama_kolom
FROM table1
LEFT JOIN table2
ON table1.nama_kolom = table2.nama_kolom;

Contoh Query Left Join

SELECT USER.user_alias,user.user_email,transaksi.user_id FROM user
LEFT JOIN transaksi ON transaksi.user_id = user.user_id

Query dari mysql Left Join di atas akan menampilkan data seperti gambar di bawah ini

Query Left Join

RIGHT JOIN

Ilustrasi Right JoinRight Join adalah kebalikan dari fungsi sql join Lerft Join

 

 

Perintah Dasar Penggunakan Query RIGHT JOIN

SELECT nama_kolom
FROM table1
RIGHT JOIN table2
ON table1.nama_kolom = table2.nama_kolom;

Contoh Query RIGHT JOIN

SELECT trasaksid.trxD_id,trasaksid.trx_id,trasaksid.trx_qty,barang.barang_nama FROM trasaksid 
RIGHT JOIN barang on barang.barang_id = trasaksid.barang_id

Contoh Query dari mysql Right Join di atas kana menampilkan data seperti gambar di bawah ini

Hasil dari Query Right Join

Demikian lah perintah query sql join yang dapat saya bahas kali ini. Semoga dapat membantu teman teman dalam menggabungkan beberapa tabel dalam satu buah query.

Baca Juga : Perintah dasar Mysql

 

Artikel Menarik Lainnya
menampilkan data dari database, menampilkan data dari database mysql, sql join, sql join 3 table, sql join 3 tables, query sql join, sql join 3 tabel, fungsi sql join, mysql join, mysql join 3 table, mysql join table, mysql join 2 table,

loading...