Page 36 - sql_ebook_codingthailand
P. 36
32
ผลลัพธ์ตัวอย่างที 4
Name Name
Somchai Research and Development
Somjai Research and Development
4.2 การใช้งานคําสั ง SELECT แบบซ้อนหลายระดับ (Subqueries)
เราสามารถใช้งานคําสั ง SELECT แบบซ้อนหลายระดับได้หากเราต้องการข้อมูลที มีความ
ซับซ้อนมากยิ งขึ น
ตัวอย่างที 5 แสดงรายละเอียดการติดต่อทั งหมด (Assignment) ของพนักงานที ชื อ Somchai
SELECT *
FROM Assignment
WHERE employeeID =
(SELECT employeeID
FROM employee
WHERE name=’Somchai’)
ผลลัพธ์จากตัวอย่างที 5
clientID employeeID Workdate hours
1 1111 2010-04-10 8.5
1 1111 2010-04-25 5
การใช้งาน SELECT แบบซ้อนหลายระดับนี ข้อควรระวังคือ คําสั ง SELECT ที อยู่หลังเงื อนไข
WHERE จะต้องได้ผลลัพธ์เป็น 1 แถวเท่านั น จากตัวอย่างที 5 หลังเงื อนไข WHERE ถ้าเรารู้ว่ารหัส
พนักงาน (employeeID) อยู่แล้วก็ไม่จําเป็นต้องใช้ Subquery แต่ถ้าเรารู้ชื อพนักงานอย่างเดียวก็
สามารถใช้ Subquery เข้ามาช่วยทํางานได้
สรุปท้ายบท
การ join ตารางมากกว่า 1 ตารางเราสามารถใช้รูปแบบการ join แบบต่างๆ ได้แก่ INNER
JOIN เป็นการ join โดยนําฟิลด์ที มีความสัมพันธ์กันมาเปรียบเทียบกันโดยผลลัพธ์จะได้ข้อมูล
เฉพาะแถวข้อมูลที ตรงกันเท่านั น ส่วน LEFT JOIN จะเป็นการเปรียบเทียบฟิลด์เหมือนกัน INNER
JOIN แต่ข้อมูลที เกิดจากเปรียบเทียบจะแสดงข้อมูลทั งหมดจากตาราง (รวมทั งฟิลด์ที เป็นค่า Null
ด้วย) ด้านซ้าย ส่วน RIGHT JOIN จะแสดงข้อมูลทั งหมดจากตารางด้านขวา (รวมทั งฟิลด์ที เป็นค่า
Null ด้วย) และเรายังสามารถใช้การ SELECT แบบหลายระดับเพื อการเรียกดูข้อมูลที ซับซ้อนยิ งขึ น
ได้
เรียนเขียนโปรแกรมฟรี กับโค้ชเอก ได้ที www.codingthailand.com