Access SQL: ส่วนคำสั่ง FROM

นำไปใช้กับ
Access for Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

บทความนี้เป็นหนึ่งในชุดบทความเกี่ยวกับ 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 ตัวดําเนินการเปรียบเทียบเชิงสัมพันธ์ใดๆ ได้แก่ "=," "<,"> "<"=", ">=," หรือ "."<>

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการรวม โปรดดูที่บทความ การรวมตารางและคิวรี

ด้านบนของหน้า