SQL รวม 2 ตารางเข้าด้วยกัน ด้วย INNER JOIN บทความนี้สอนการรวม 2 ตารางเพื่อแสดงผลข้อมูลร่วมกัน โดยใช้การรวมข้อมูลแบบ INNER JOIN จากตัวอย่างคือ ตาราง book และ category โดยมีรายละเอียดดังนี้
ตัวอย่าง โครงสร้างตาราง book และ category
ตาราง book
+-------------+---------------+
| Field | Type |
+-------------+---------------+
| book_id | int(11) | Primary Key
| book_name | char(255) |
| book_price | decimal(12,2) |
| book_cgy_id | int(11) | Foreign Key
+-------------+---------------+
ตาราง category
+----------+-----------+
| Field | Type |
+----------+-----------+
| cgy_id | int(11) | Primary Key
| cgy_name | char(255) |
+----------+-----------+
ตัวอย่าง SQL รวม 2 ตาราง ด้วย INNER JOIN
SELECT * FROM book INNER JOIN category ON ( book_cgy_id = cgy_id );
ผลลัพธ์
+---------+-------------+-------------+
| book_id | book_name | cgy_name |
+---------+-------------+-------------+
| 1 | PHP & MySQL | Programming |
| 2 | Python | Programming |
| 3 | SQL | Networking |
| 4 | Java | Networking |
+---------+-------------+-------------+
4 rows in set (0.001 sec)
SQL รวม 2 ตารางเข้าด้วยกัน จากตัวอย่างใช้คำสั่ง SELECT * FROM book INNER JOIN category คือ รวมตาราง book และ category เข้าด้วยกัน โดยเงื่อนไขคือ ON ( book_cgy_id = cgy_id ) หมายความว่า column book_cgy_id ของตาราง book ที่เป็น foreign key ต้องมีค่าเท่ากับ cgy_id ที่เป็น primary key ของตาราง category