Devdit
 

PHP ดึงข้อมูล 3 ตารางมาแสดง ด้วย INNER JOIN

2.2K

PHP ดึงข้อมูล 3 ตารางมาแสดง ด้วย INNER JOIN บทความนี้สอนการใช้คำสั่ง INNER JOIN เพื่อจอยตาราง และดึงข้อมูล 3 ตารางมาแสดง ด้วยภาษา PHP ร่วมกับ MySQL/MariaDB สามารถเขียนโปรแกรมได้ดังนี้

 

ตัวอย่าง โครงสร้างตาราง book, category, author

ตาราง book
+---------+-------------+------------+-------------+-------------+
| book_id | book_name   | book_price | book_cgy_id | book_ath_id |
+---------+-------------+------------+-------------+-------------+
|       1 | PHP & MySQL |     200.00 |           1 |           1 |
|       2 | Python      |     220.00 |           1 |           1 |
|       3 | SQL         |     280.00 |           2 |           2 |
|       4 | Java        |     250.00 |           2 |           2 |
+---------+-------------+------------+-------------+-------------+
ตาราง category
+--------+-------------+
| cgy_id | cgy_name    |
+--------+-------------+
|      1 | Programming |
|      2 | Networking  |
+--------+-------------+
ตาราง author
+--------+----------+
| ath_id | ath_name |
+--------+----------+
|      1 | Mr.A     |
|      2 | Mrs.B    |
+--------+----------+

 

ตัวอย่าง PHP ดึงข้อมูล 3 ตารางมาแสดง ด้วย INNER JOIN

<?php
    $con = mysqli_connect("localhost", "root", "", "demo");
    mysqli_query( $con, "SET NAMES UTF8" );
    $sql = "
            SELECT book_id, book_name, cgy_name, ath_name
            FROM book
            INNER JOIN category ON ( book_cgy_id = cgy_id )
            INNER JOIN author ON ( book_ath_id = ath_id ) 
           ";
    $q = mysqli_query( $con, $sql );
    while( $f = mysqli_fetch_assoc( $q ) ) {
        echo $f['book_id']." ".$f['book_name']." / ".$f['cgy_name']." / ".$f['ath_name']."<br/>";
    }
    mysqli_close( $con );
?>

ผลลัพธ์

1 PHP & MySQL / Programming / Mr.A
2 Python / Programming / Mr.A
3 SQL / Networking / Mrs.B
4 Java / Networking / Mrs.B

คำอธิบาย

PHP ดึงข้อมูล 3 ตารางมาแสดง พิจารณาโครงสร้างตารางได้ดังนี้ ตาราง book มี column book_cgy_id (FK) และ book_ath_id (FK) ไว้สำหรับเชื่อมกับ column cgy_id (PK) ของตาราง category และ ath_id (PK) ของตาราง author โดยคำสั่ง SQL มีความหมายดังนี้

1. SELECT book_id, book_name, cgy_name, ath_name คือ กำหนดชื่อ columns ที่จะแสดงด้วยคำสั่ง SELECT

2. FROM book คือ ใช้ตาราง book เป็นตารางหลักในการดึงข้อมูล

3. INNER JOIN category ON ( book_cgy_id = cgy_id ) คือ เชื่อมตาราง book กับ category ด้วย INNER JOIN โดย column book_cgy_id = cgy_id ถึงจะแสดงข้อมูล

4. INNER JOIN author ON ( book_ath_id = ath_id ) คือ เชื่อมตาราง book กับ author ด้วย INNER JOIN โดย column book_ath_id = ath_id ถึงจะแสดงข้อมูล

แก้ไข 2 ปีที่แล้ว
ชอบ
ลิ้งก์
แชร์
Devdit มีช่อง YouTube แล้ว
เราสร้างวิดีโอเกี่ยวกับเทคโนโลยี ทำตามง่ายๆ