คำสั่ง sql Select ข้อมูลสองตาราง Mysql ใช้ได้ กับ Sql มาตรฐาน ใช้การ Joins
สมมุต มี ตารางสองตางราง มีโครงสร้าง และข้อมูลดังนี้Employees:
Employee_ID Name
01 | Hansen, Ola |
02 | Svendson, Tove |
03 | Svendson, Stephen |
04 | Pettersen, Kari |
Prod_ID Product Employee_ID
234 | Printer | 01 |
657 | Table | 03 |
865 | Chair | 03 |
โดยที่ ตาราง Orders มี field Employee_ID เป็น Foreign Key เป็น Key ที่ใช้ เชื่อม ระหว่างตาราง Orders กับ ตาราง Employees โดยที่ ตารางลูกค้า(Employees) จะมี field รหัสลูกค้า(Employee_ID) เป็น keyหลัก
จากสอง ตารางดังกล่าวเป็นความสัมพันธ์ แบบ 1:N (One-to-Many) เนื่องจากลูกค้า 1 คนสามารถมีรายการสั่งสินค้าได้หลาย รายการ
ถ้าเราจะดึงข้อมูลจากสอง ตารางนี้มาแสดง ทำได้ สองวิธีคือ
วิธีที่ 1. ใช้การ referring จากสอง ตาราง
sql---> SELECT Employees.Name, Orders.Product FROM Employees, Orders WHERE Employees.Employee_ID=Orders.Employee_ID
อธิบาย--> เราจะใช้ Employee_ID เป็นตัวอ้างถึงจากสอง ตาราง และ การเลือก field ก็ต้องบอกด้วย ชื่อตาราง.ชื่อ field
ผล--->
Name Product
Hansen, Ola | Printer |
Svendson, Stephen | Table |
Svendson, Stephen | Chair |
วิธีที่ 2. ใช้การ Joins กันของ สองตาราง
Syntax---> SELECT field1, field2, field3 FROM first_table INNER JOIN second_table ON first_table.keyfield = second_table.foreign_keyfield
sql----> SELECT Employees.Name, Orders.Product FROM Employees INNER JOIN Orders ON Employees.Employee_ID=Orders.Employee_ID
อธิบาย--> เราจะใช้ INNER JOIN เข้ามาช่วยเพื่อบอกว่า เราจะเชื่อม ตารางสอง ตางราง และใช้ Foreign Key เป็นตัวอ้างถึงสองตาราง ที่มีความ สัมพันธ์ กัน
ผล-->
Name Product
Hansen, Ola | Printer |
Svendson, Stephen | Table |
Svendson, Stephen | Chair |