PHP แสดงข้อมูลจาก 2 ตารางแบบ join ตาราง บทความนี้สอนการเขียนคำสั่ง SQL เพื่อแสดงข้อมูลจาก 2 ตารางที่มีความเกี่ยวข้องกัน หรือการ join ตาราง โดยใช้คำสั่ง INNER JOIN สามารถเขียนโปรแกรมได้ดังนี้
ตัวอย่าง โครงสร้าง และข้อมูลของตาราง book และ category
ตาราง book
+---------+-------------+-------------+
| book_id | book_name | book_cgy_id |
+---------+-------------+-------------+
| 1 | PHP & MySQL | 1 |
| 2 | MS SQL | 5 |
| 3 | SQL | 2 |
| 4 | NOSQL | 5 |
+---------+-------------+-------------+
ตาราง category
+--------+-------------+
| cgy_id | cgy_name |
+--------+-------------+
| 1 | Programming |
| 2 | Networking |
| 5 | Database |
+--------+-------------+
ตัวอย่าง PHP แสดงข้อมูลจาก 2 ตารางแบบ join ตาราง
<?php
$c = mysqli_connect("localhost", "root", "", "demo");
$sql = "
SELECT *
FROM book
INNER JOIN category ON ( book_cgy_id = cgy_id )
";
$q = mysqli_query( $c, $sql );
while( $f = mysqli_fetch_assoc( $q ) ) {
echo $f['book_id']." / ".$f['book_name']." / ".$f['cgy_id']." / ".$f['cgy_name']."<br/>";
}
mysqli_close( $c );
?>
ผลลัพธ์
1 / PHP & MySQL / 1 / Programming
2 / MS SQL / 1 / Programming
3 / SQL / 2 / Networking
4 / NOSQL / 2 / Networking
PHP แสดงข้อมูลจาก 2 ตาราง คือ ตาราง book และ category ผ่านคำสั่ง INNER JOIN category ON ( book_cgy_id = cgy_id ) หมายความว่า join ตาราง category กับ book โดยข้อมูลใน column book_cgy_id ต้องเท่ากับ cgy_id เท่านั้น ข้อมูลถึงจะแสดงออกมา