SQL ดึงข้อมูล 2 ตาราง จอย 2 ตารางด้วย INNER JOIN บทความนี้สอนการใช้คำสั่ง INNER JOIN เพื่อจอย 2 ตารางเข้าด้วยกัน วัตถุประสงค์เพื่อดึงข้อมูล 2 ตารางที่มีความเกี่ยวข้องกัน สามารถเขียนคำสั่งได้ดังนี้
ตัวอย่าง ตาราง book และ ตาราง category เชื่อมกันผ่าน column book_cgy_id (Foreign Key) และ cgy_id (Primary Key)
+---------+-------------+------------+-------------+
| book_id | book_name | book_price | book_cgy_id |
+---------+-------------+------------+-------------+
| 1 | PHP & MySQL | 200.00 | 1 |
| 2 | Python | 220.00 | 1 |
| 3 | SQL | 280.00 | 2 |
| 4 | Java | 250.00 | 2 |
+---------+-------------+------------+-------------+
+--------+-------------+
| cgy_id | cgy_name |
+--------+-------------+
| 1 | Programming |
| 2 | Networking |
+--------+-------------+
ตัวอย่าง SQL ดึงข้อมูล 2 ตาราง จอย 2 ตารางด้วย INNER JOIN
SELECT book_id, book_name, book_price, cgy_name FROM book INNER JOIN category ON ( book_cgy_id = cgy_id );
ผลลัพธ์
+---------+-------------+------------+-------------+
| book_id | book_name | book_price | cgy_name |
+---------+-------------+------------+-------------+
| 1 | PHP & MySQL | 200.00 | Programming |
| 2 | Python | 220.00 | Programming |
| 3 | SQL | 280.00 | Networking |
| 4 | Java | 250.00 | Networking |
+---------+-------------+------------+-------------+
4 rows in set (0.000 sec)
SQL ดึงข้อมูล 2 ตาราง จากตัวอย่างเป็นการใช้คำสั่ง INNER JOIN เพื่อจอยตาราง book และตาราง category โดยมีรายละเอียดดังนี้
1. SELECT book_id, book_name, book_price, cgy_name FROM book ส่วนนี้เป็นการกำหนดว่าแสดง column ใดบ้างจากตาราง book
2. INNER JOIN category กำหนดเชื่อมตาราง book กับตาราง category
3. ON ( book_cgy_id = cgy_id ) กำหนดว่าข้อมูลที่จะแสดง (จอยกันได้) เงื่อนไขคือ ข้อมูลใน column book_cgy_id ต้องเท่ากับ cgy_id