SQL join 3 ตาราง ด้วย INNER JOIN บทความนี้สอนการใช้คำสั่ง INNER JOIN เพื่อ join 3 ตารางเข้าด้วยกัน ผ่าน column ที่มีความสัมพันธ์กันในรูปแบบ Primary Key และ Foreign Key สามารถเขียนคำสั่งได้ดังนี้
ตัวอย่าง โครงสร้างตาราง book, category และ author
ตาราง book
+---------+-------------+------------+--------------+
| book_id | book_name | book_cgy_id | book_ath_id |
+---------+-------------+------------+--------------+
| 1 | PHP & MySQL | 1 | 1 |
| 2 | Python | 1 | 1 |
| 3 | SQL | 2 | 2 |
| 4 | Java | 2 | 2 |
+---------+-------------+------------+--------------+
ตาราง category
+--------+-------------+
| cgy_id | cgy_name |
+--------+-------------+
| 1 | Programming |
| 2 | Networking |
+--------+-------------+
ตาราง author
+--------+----------+
| ath_id | ath_name |
+--------+----------+
| 1 | Mr.A |
| 2 | Mrs.B |
+--------+----------+
ตัวอย่าง SQL join 3 ตาราง ด้วย INNER JOIN
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 );
ผลลัพธ์
+---------+-------------+-------------+----------+
| book_id | book_name | cgy_name | ath_name |
+---------+-------------+-------------+----------+
| 1 | PHP & MySQL | Programming | Mr.A |
| 2 | Python | Programming | Mr.A |
| 3 | SQL | Networking | Mrs.B |
| 4 | Java | Networking | Mrs.B |
+---------+-------------+-------------+----------+
SQL join 3 ตาราง ผ่าน column ที่เป็น Primary Key และ Foreign Key โดยมีรายละเอียด SQL ดังนี้
1. SELECT book_id, book_name, cgy_name, ath_name FROM book คือ กำหนด columns ที่จะแสดง โดยตารางหลัก คือ book
2. INNER JOIN category ON ( book_cgy_id = cgy_id ) คือ join ตาราง book กับ category ด้วย column book_cgy_id (FK) เท่ากับ cgy_id (PK)
3. INNER JOIN author ON ( book_ath_id = ath_id ) คือ join ตาราง book กับ author ด้วย column book_ath_id (FK) เท่ากับ ath_id