Judul Asli:
Reference:
http://www.codingcage.com
Tutorial ini seputar, trik JOIN (Menggabungkan) lebih dari satu tabel dalam PHP menggunakan (statement) 'SQL join' dan tanpa (statement) 'join', bagaimana menampilkan hasil dari database MySQL dan kemudian memperlihatkannya dalam format yang tepat, Tindakan penggabungan/ 'join' dua atau lebih tabel di MySQL mengacu untuk menggabungkan dua tabel atau lebih ke dalam sebuah tabel tunggal (satu tabel), ayo kita kita lihat.
Pertimbangkan Setelah Dua Tabel
1 : tbl_categories
Records untuk tabelnya :
2 : tbl_products
Records untuk tabelnya :
Kamu bisa melakukan dengan menggunakan dua metode berikut:
1. Mengacu pada dua tabel dalam (statement) SQL tunggal.
2. Menggunakan (statement) JOIN.
1. Mengacu pada (statement) SQL Tunggal
Dalam rangka untuk mengambil informasi dari dua tabel yang terkait, kamu memerlukan dua tabel referensi dalam query SQL.
Kode Tanpa JOIN
Penjelasan Singkat
Contoh Query diatas digunakan sebagai berikut:
Penjelasan Query :
c = tbl_categories
p = tbl_products
* = Ambil semua records dari kedua tabel.
1. c and p : Nama alias(nama lain) dari dua tabel itu.
2. Kedua tabel tersebut harus memiliki common column, Pertama adalah 'primary key' dan Kedua adalah 'foreign key'.
3. 'cat_id' adalah 'primary key' dalam tabel 'categories'.
4. 'cat_id' adalah 'foreign key' dalam tabel 'products'.
Hasilnya:
2. Menggunakan JOIN
Dalam JOIN di MySql membolehkan pengambilan data record dari satu tabel atau lebih yang memiliki hubungan yang sama, kamu bisa juga menggunakan 'Operator Logika' untuk mendapatkan hasil yang diinginkan dari Query MySql JOIN ini.
1. INNER JOIN
Inner JOIN adalah Jenis 'Default' dari JOIN.
Ketika dua tabel digabungkan dengan menggunakan opsi INNER JOIN, maka hal itu hanya mengembalikan record dari kedua tabel atau tabel yang terdapat catatan untuk 'common field'.
Contoh:
2. Outer JOIN
Kode Outer JOIN
Saya berharap postingan ini bisa membantu... :)
[Demo Live]
[Download]
Pertimbangkan Setelah Dua Tabel
1 : tbl_categories
CREATE TABLE IF NOT EXISTS `tbl_categories` ( `cat_id` int(5) NOT NULL AUTO_INCREMENT, `cat_name` varchar(20) NOT NULL, PRIMARY KEY (`cat_id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;
Records untuk tabelnya :
INSERT INTO `tbl_categories` (`cat_id`, `cat_name`) VALUES (1, 'samsung'), (2, 'nokia'), (3, 'htc');
2 : tbl_products
CREATE TABLE IF NOT EXISTS `tbl_products` ( `product_id` int(5) NOT NULL AUTO_INCREMENT, `product_name` varchar(30) NOT NULL, `cat_id` int(5) NOT NULL, PRIMARY KEY (`product_id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ;
Records untuk tabelnya :
INSERT INTO `tbl_products` (`product_id`, `product_name`, `cat_id`) VALUES (1, 'galaxy note', 1), (3, 'lumia 530', 2), (5, 'htc grid', 3);
- Dua tabel di atas, terdapat satu kolom dengan nama yang sama 'cat_id'.
- kolom 'cat_id' akan membangun relationship (hubungan) antar kedua tabel tersebut.
- Anggaplah sekarang kamu ingin mengambil rincian dari tabel 'products' bersamaan dengan 'product category'.
Kamu bisa melakukan dengan menggunakan dua metode berikut:
1. Mengacu pada dua tabel dalam (statement) SQL tunggal.
2. Menggunakan (statement) JOIN.
1. Mengacu pada (statement) SQL Tunggal
Dalam rangka untuk mengambil informasi dari dua tabel yang terkait, kamu memerlukan dua tabel referensi dalam query SQL.
Kode Tanpa JOIN
SELECT tbl_a.column1 , tbl_a.column2 tbl_b.column1 , tbl_b.column2 FROM tbl_a , tbl_b WHERE tbl_a.commonfield=tbl_b.commonfield
Penjelasan Singkat
- Dalam syntax diatas, (condition) WHERE membangun hubungan antar tabel yang didasarkan pada common field.
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Using single SQL</title> <style> table,td,th { padding:10px; border-collapse:collapse; font-family:Georgia, "Times New Roman", Times, serif; border:solid #ddd 2px; } </style> </head> <body> <table align="center" border="1" width="100%"> <tr> <th>product id</th> <th>product name</th> <th>category name</th> </tr> <?php mysql_connect("localhost","root"); mysql_select_db("dbtuts"); $res=mysql_query("SELECT c.* , p.* FROM tbl_categories c,tbl_products p WHERE c.cat_id=p.cat_id"); while($row=mysql_fetch_array($res)) { ?> <tr> <td><p><?php echo $row['product_id']; ?></p></td> <td><p><?php echo $row['product_name']; ?></p></td> <td><p><?php echo $row['cat_name']; ?></p></td> </tr> <?php } ?> </table> </body> </html>
Contoh Query diatas digunakan sebagai berikut:
SELECT c . * , p . * FROM tbl_categories c, tbl_products p WHERE c.cat_id = p.cat_id
Penjelasan Query :
c = tbl_categories
p = tbl_products
* = Ambil semua records dari kedua tabel.
1. c and p : Nama alias(nama lain) dari dua tabel itu.
2. Kedua tabel tersebut harus memiliki common column, Pertama adalah 'primary key' dan Kedua adalah 'foreign key'.
3. 'cat_id' adalah 'primary key' dalam tabel 'categories'.
4. 'cat_id' adalah 'foreign key' dalam tabel 'products'.
Hasilnya:
2. Menggunakan JOIN
Dalam JOIN di MySql membolehkan pengambilan data record dari satu tabel atau lebih yang memiliki hubungan yang sama, kamu bisa juga menggunakan 'Operator Logika' untuk mendapatkan hasil yang diinginkan dari Query MySql JOIN ini.
1. INNER JOIN
Inner JOIN adalah Jenis 'Default' dari JOIN.
Ketika dua tabel digabungkan dengan menggunakan opsi INNER JOIN, maka hal itu hanya mengembalikan record dari kedua tabel atau tabel yang terdapat catatan untuk 'common field'.
Contoh:
SELECT tbl_a.column1 , tbl_a.column2 tbl_b.column1 , tbl_b.column2 FROM tbl_a INNER JOIN tbl_b ON tbl_a.commonfield=tbl_b.commonfield
2. Outer JOIN
Kode Outer JOIN
SELECT tbl_a.column1 , tbl_a.column2 tbl_b.column1 , tbl_b.column2 FROM tbl_a LEFT OUTER JOIN tbl_b ON tbl_a.commonfield=tbl_b.commonfield
Saya berharap postingan ini bisa membantu... :)
[Demo Live]
[Download]