Devdit
 

การ JOIN ตาราง SQL 4 ตาราง

380

บทความนี้สอนวิธีการ JOIN ตาราง SQL 4 ตาราง โดยใช้คำสั่ง JOIN หรือ INNER JOIN โดยจะแสดงเฉพาะข้อมูลที่มีความสัมพันธ์กันผ่าน primary key และ foreign key เราจะได้เรียนรู้ตัวอย่างการเขียน SQL เพื่อ Join 4 ตาราง พร้อมโครงสร้างตาราง และคำอธิบาย SQL โดยมีรายละเอียดดังนี้

 

ตัวอย่าง โครงสร้างตาราง

1. ตาราง orders เก็บข้อมูลคำสั่งซื้อ มี id เป็น primary key

+----+---------------------+-------------+
| id | created             | paid_status |
+----+---------------------+-------------+
|  1 | 2024-01-29 08:03:17 | paid        |
|  2 | 2024-01-29 11:03:17 | paid        |
|  5 | 2024-01-30 14:03:17 | unpaid      |
+----+---------------------+-------------+

 

2. ตาราง order_details เก็บข้อมูลรายละเอียดคำสั่งซื้อ มี id เป็น primary key และ order_id, product_id เป็น foreign key

+----+------------+--------+----------+
| id | product_id | amount | order_id |
+----+------------+--------+----------+
|  1 |          1 |      2 |        1 |
|  2 |          3 |      2 |        1 |
|  3 |          2 |      1 |        2 |
+----+------------+--------+----------+

 

3. ตาราง products เก็บข้อมูลสินค้า มี id เป็น primary key และ category_id เป็น foreign key

+----+--------------+--------+-------------+
| id | title        | price  | category_id |
+----+--------------+--------+-------------+
|  1 | Computer     | 200.00 |           1 |
|  2 | Notebook     | 180.00 |           1 |
|  3 | Mobile phone | 100.00 |           2 |
+----+--------------+--------+-------------+

 

4. ตาราง categorys เก็บประเภทสินค้า มี id เป็น primary key

+----+-----------+
| id | title     |
+----+-----------+
|  1 | Computer  |
|  2 | Gadget    |
|  3 | Accessory |
|  4 | Battery   |
+----+-----------+

 

ตัวอย่าง วิธีการ JOIN ตาราง SQL 4 ตาราง

SELECT o.id, o.created, o.paid_status, od.amount, p.title, p.price, c.title 
FROM orders o
JOIN order_details od ON ( o.id = od.order_id )
JOIN products p ON ( od.product_id = p.id )
JOIN categorys c ON ( p.category_id = c.id )

ผลลัพธ์

+----+---------------------+-------------+--------+--------------+--------+----------+
| id | created             | paid_status | amount | title        | price  | title    |
+----+---------------------+-------------+--------+--------------+--------+----------+
|  1 | 2024-01-29 08:03:17 | paid        |      2 | Computer     | 200.00 | Computer |
|  1 | 2024-01-29 08:03:17 | paid        |      2 | Mobile phone | 100.00 | Gadget   |
|  2 | 2024-01-29 11:03:17 | paid        |      1 | Notebook     | 180.00 | Computer |
+----+---------------------+-------------+--------+--------------+--------+----------+

จากคำสั่ง SQL สำหรับการ Join ตาราง 4 ตารางพร้อมกัน สามารถอธิบายได้ดังนี้

1. SELECT ตามด้วยชื่อ field ที่ต้องการแสดง ประกอบด้วย id, created, paid_status, amount, title (products), price และ title (categorys)

2. FROM orders o คือ กำหนดให้ตารางแรก คือ orders ตรง o คือกำหนดชื่อย่อเพื่อหลีกเลี่ยงการซ้ำกันของชื่อ field

3. JOIN order_details od ON ( o.id = od.order_id ) คือ Join ระหว่างตาราง orders กับ orders_detail ผ่าน field o.id ต้องเท่ากับ od.order_id

4. JOIN products p ON ( od.product_id = p.id ) คือ Join ระหว่างตาราง order_details กับ products ผ่าน field od.product_id ต้องเท่ากับ p.id

5. JOIN categorys c ON ( p.category_id = c.id ) คือ Join ระหว่างตาราง products กับ categorys ผ่าน field p.category_id ต้องเท่ากับ c.id

 

สรุป บทความนี้เราได้เรียนรู้วิธีการเขียน SQL เพื่อ Join ตารางทั้งหมด 4 ตาราง พร้อมตัวอย่างโครงสร้าง และข้อมูลของตารางทั้งหมด รวมถึงคำอธิบายการ Join และผลลัพธ์จากการทำงานของคำสั่ง SQL

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