บทความนี้เป็นหนึ่งในชุดบทความเกี่ยวกับ Access SQL บทความนี้อธิบายวิธีเขียนส่วนคําสั่ง FROM และใช้ตัวอย่างในการแสดงเทคนิคต่างๆ ที่คุณสามารถใช้ได้ในส่วนคําสั่ง FROM
ในคําสั่ง SELECT คุณกําหนดแหล่งข้อมูลในส่วนคําสั่ง FROM ส่วนคําสั่ง FROM ยังอาจประกอบด้วยการดําเนินการ JOIN คุณสามารถใช้การดําเนินการ JOIN เพื่อจับคู่และรวมข้อมูลจากแหล่งข้อมูลสองแห่ง เช่น สองตาราง หรือตารางและคิวรี
สําหรับภาพรวมของ Access SQL ให้ดู Access SQL: แนวคิดพื้นฐาน คําศัพท์ และไวยากรณ์
ในบทความนี้
ระบุแหล่งข้อมูล
ในคำสั่ง SELECT ส่วนคำสั่ง FROM จะระบุตารางหรือคิวรีที่มีข้อมูลที่จะใช้ในส่วนคำสั่ง SELECT
สมมติว่าคุณต้องการทราบหมายเลขโทรศัพท์ของลูกค้ารายหนึ่ง สมมติให้ตารางที่มีเขตข้อมูลที่เก็บข้อมูลนี้อยู่มีชื่อว่า tblCustomer ส่วนคําสั่ง FROM จะมีลักษณะดังต่อไปนี้
FROM tblCustomer
คุณสามารถใช้วงเล็บเหลี่ยมล้อมรอบชื่อได้ ถ้าชื่อไม่มีเว้นวรรคหรืออักขระพิเศษ (เช่น เครื่องหมายวรรคตอน) คุณจะใส่เครื่องหมายวงเล็บเหลี่ยมหรือไม่ก็ได้ ถ้าชื่อมีเว้นวรรคหรืออักขระพิเศษ คุณต้องใช้เครื่องหมายวงเล็บเหลี่ยม
เคล็ดลับ
ชื่อที่มีช่องว่างสามารถอ่านได้ง่ายและช่วยคุณประหยัดเวลาขณะออกแบบฟอร์มและรายงาน แต่อาจทําให้คุณต้องพิมพ์มากขึ้นเมื่อเขียนคําสั่ง SQL คุณควรพิจารณาข้อเท็จจริงนี้เมื่อตั้งชื่อวัตถุในฐานข้อมูล Access ของคุณ
ใช้ชื่อแทนสำหรับแหล่งข้อมูล
คุณสามารถใช้ชื่ออื่นเพื่ออ้างอิงตารางในคําสั่ง SELECT ได้โดยใช้นามแฝงของตารางในส่วนคําสั่ง FROM ของคุณ นามแฝงของตารางคือชื่อที่คุณกําหนดให้กับแหล่งข้อมูลในคิวรีเมื่อคุณใช้นิพจน์เป็นแหล่งข้อมูล หรือเพื่อทําให้ง่ายต่อการพิมพ์และอ่านคําสั่ง SQL ซึ่งจะเป็นประโยชน์อย่างยิ่งเมื่อชื่อของแหล่งข้อมูลยาวหรือยากต่อการพิมพ์ โดยเฉพาะเมื่อมีหลายเขตข้อมูลที่มีชื่อเดียวกันจากตารางต่างๆ
ตัวอย่างเช่น ถ้าคุณต้องการเลือกข้อมูลจากสองเขตข้อมูล ซึ่งทั้งสองรายการมีชื่อว่า ID โดยเขตข้อมูลหนึ่งมาจากตาราง tblCustomer และอีกเขตข้อมูลหนึ่งมาจากตาราง tblOrder ส่วนคำสั่ง SELECT ของคุณอาจมีลักษณะดังต่อไปนี้:
SELECT [tblCustomer].[ID], [tblOrder].[ID]
การใช้นามแฝงของตารางในส่วนคําสั่ง FROM ช่วยให้พิมพ์แบบสอบถามได้ง่ายขึ้น ส่วนคําสั่ง FROM ที่ใช้นามแฝงของตาราง อาจมีลักษณะดังต่อไปนี้
FROM [tblCustomer] AS [C], [tblOrder] AS [O]
จากนั้น คุณสามารถนำนามแฝงของตารางเหล่านั้นมาใช้ในส่วนคำสั่ง SELECT ของคุณได้ โดยมีลักษณะดังต่อไปนี้
SELECT [C].[ID], [O].[ID]
หมายเหตุ
เมื่อคุณใช้นามแฝงของตาราง คุณสามารถอ้างอิงตารางในคำสั่ง SQL ของคุณได้โดยใช้นามแฝงนี้หรือใช้ชื่อเต็มของตารางนั้น
รวมข้อมูลที่เกี่ยวข้อง
เมื่อคุณต้องการหาวิธีที่จะรวมคู่ของระเบียนต่างๆ จากแหล่งข้อมูลสองแห่งเข้าด้วยกันเป็นระเบียนเดียวในผลลัพธ์แบบสอบถาม คุณสามารถใช้การรวมได้ การรวมคือการดําเนินการของ SQL ที่ระบุว่าความสัมพันธ์ของแหล่งข้อมูลสองแหล่งเป็นอย่างไร และจะรวมข้อมูลจากแหล่งข้อมูลหนึ่งเมื่อไม่มีข้อมูลที่สอดคล้องกันจากอีกแหล่งข้อมูลหนึ่งเข้ามาหรือไม่
เมื่อต้องการรวมข้อมูลจากแหล่งข้อมูลสองแห่ง คุณสามารถใช้การดําเนินการรวมกับเขตข้อมูลที่แหล่งข้อมูลทั้งสองมีเหมือนกันได้ เมื่อข้อมูลที่เก็บอยู่ในเขตข้อมูลนี้มีค่าตรงกัน ข้อมูลจากระเบียนทั้งสองจะถูกรวมไว้ในผลลัพธ์
นอกจากการรวมข้อมูลแล้ว คุณยังสามารถใช้การรวมนี้เพื่อระบุว่าจะรวมถึงระเบียนจากตารางใดตารางหนึ่งหรือไม่เมื่อไม่มีระเบียนที่สอดคล้องในตารางที่สัมพันธ์กัน
ตัวอย่างเช่น สมมติว่าคุณต้องการใช้ข้อมูลจากตารางสองตารางในคิวรี: tblCustomer และ tblOrder ทั้งสองตารางมีเขตข้อมูล CustomerID ที่ระบุถึงลูกค้า แต่ละระเบียนในตาราง tblCustomer อาจมีอย่างน้อยหนึ่งระเบียนที่สอดคล้องกันในตาราง tblOrder และค่าที่สอดคล้องกันสามารถถูกกําหนดตามค่าได้ในเขตข้อมูล CustomerID
ถ้าคุณต้องการรวมตารางเพื่อให้คิวรีรวมระเบียนจากตารางทั้งสองเข้าด้วยกัน โดยยกเว้นระเบียนจากตารางหนึ่งถ้าไม่มีระเบียนที่สอดคล้องกันในอีกตารางหนึ่ง ส่วนคำสั่ง FROM ของคุณอาจมีลักษณะดังต่อไปนี้ (เพิ่มตัวแบ่งบรรทัดเพื่อให้อ่านได้ง่าย):
FROM [tblCustomer] INNER JOIN [tblOrder]
ON [tblCustomer].[CustomerID]=[tblOrder].[CustomerID]
ใน Access การรวมจะเกิดขึ้นในส่วนคําสั่ง FROM ของคําสั่ง SELECT การรวมมีอยู่สองชนิด: การรวมภายในและการรวมภายนอก ส่วนต่อไปนี้จะอธิบายเกี่ยวกับการรวมทั้งสองชนิด
การรวมภายใน
การรวมภายในเป็นการรวมชนิดที่ใช้บ่อยที่สุด เมื่อเรียกใช้แบบสอบถามที่มีการรวมภายใน มีเพียงระเบียนที่มีค่าอยู่ในทั้งสองตารางที่ถูกรวมเท่านั้นที่จะถูกนํามารวมอยู่ในผลลัพธ์แบบสอบถาม
การรวมภายในมีไวยากรณ์ดังต่อไปนี้ (เพิ่มตัวแบ่งบรรทัดเพื่อให้อ่านได้ง่าย):
FROM table1 INNER JOIN table2
ON table1.field1 compopr table2.field2
ตารางต่อไปนี้อธิบายถึงส่วนต่างๆ ของการดำเนินการ INNER JOIN
| ส่วน | คำอธิบาย |
|---|---|
| table1, table2 | ชื่อของตารางที่ระเบียนถูกรวม |
| field1, field2 | ชื่อเขตข้อมูลที่เข้าร่วม ถ้าไม่ใช่ตัวเลข เขตข้อมูลจะต้องมีชนิดข้อมูลเดียวกันและมีข้อมูลประเภทเดียวกัน แต่ต้องไม่ใช้ชื่อเดียวกัน |
| compopr | ตัวดําเนินการเปรียบเทียบเชิงสัมพันธ์ใดๆ ได้แก่ "=," "<,"> "<"=", ">=," หรือ "."<> |
การรวมภายนอก
การรวมภายนอกคล้ายกับการรวมภายใน กล่าวคือ การรวมทั้งสองชนิดจะบอกแบบสอบถามถึงวิธีรวมข้อมูลจากแหล่งข้อมูลสองแห่งเข้าด้วยกัน แต่แตกต่างกัน เนื่องจากระบุว่าจะรวมข้อมูลเมื่อไม่มีค่าร่วมกันหรือไม่ การรวมภายนอกเป็นแบบมีทิศทาง กล่าวคือ คุณสามารถระบุว่าจะรวมระเบียนทั้งหมดจากแหล่งข้อมูลแรกที่ระบุไว้ในการรวม (เรียกว่า การรวมด้านซ้าย) หรือจะรวมระเบียนทั้งหมดจากแหล่งข้อมูลแห่งที่สองไว้ในการรวม (เรียกว่าการรวมด้านขวา)
การรวมภายนอกมีไวยากรณ์ดังต่อไปนี้:
FROM table1 [ LEFT | ขวา ] ตารางเข้าร่วม 2
ON table1.field1compopr table2.field2
ตารางต่อไปนี้อธิบายถึงส่วนต่างๆ ของการดำเนินการ LEFT JOIN และ RIGHT JOIN
| ส่วน | คำอธิบาย |
|---|---|
| table1, table2 | ชื่อของตารางที่ระเบียนถูกรวม |
| field1, field2 | ชื่อเขตข้อมูลที่เข้าร่วม เขตข้อมูลจะต้องเป็นชนิดข้อมูลเดียวกันและมีข้อมูลประเภทเดียวกัน แต่ต้องไม่ใช้ชื่อเดียวกัน |
| compopr | ตัวดําเนินการเปรียบเทียบเชิงสัมพันธ์ใดๆ ได้แก่ "=," "<,"> "<"=", ">=," หรือ "."<> |
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการรวม โปรดดูที่บทความ การรวมตารางและคิวรี