รวมระเบียนจากสองตารางเมื่อใดก็ตามที่มีค่าที่ตรงกันในเขตข้อมูลทั่วไป
ไวยากรณ์
FROM table1 INNER JOIN table2 ON table1.field1compopr table2.field2
การดำเนินการ INNER JOIN มีส่วนเหล่านี้:
ส่วน |
คำอธิบาย |
table1, table2 |
ชื่อของตารางที่ระเบียนถูกรวม |
field1, field2 |
ชื่อของเขตข้อมูลที่รวมกัน ถ้าเขตข้อมูลไม่ใช่ตัวเลข เขตข้อมูลจะต้องเป็น ชนิดข้อมูล เดียวกันและมีข้อมูลชนิดเดียวกัน แต่ไม่จําเป็นต้องมีชื่อเดียวกัน |
compopr |
ตัวดำเนินการเปรียบเทียบเชิงสัมพันธ์ใดๆ ได้แก่ "=", "<", ">", "<=", ">=" หรือ "<>" |
ข้อสังเกต
คุณสามารถใช้การดําเนินการ INNER JOIN ในส่วนคําสั่ง FROM ใดก็ได้ นี่คือชนิดการรวมที่ใช้กันมากที่สุด การรวมภายในจะรวมระเบียนจากสองตารางเมื่อใดก็ตามที่มีค่าที่ตรงกันในเขตข้อมูลที่เหมือนกันกับทั้งสองตาราง
คุณสามารถใช้ INNER JOIN กับตารางแผนกและพนักงานเพื่อเลือกพนักงานทั้งหมดในแต่ละแผนก ในทางตรงกันข้าม เมื่อต้องการเลือกแผนกทั้งหมด (แม้ว่าบางแผนกจะไม่มีการมอบหมายพนักงานให้กับแผนกเหล่านั้น) หรือพนักงานทั้งหมด (แม้ว่าบางแผนกไม่ได้กําหนดให้กับแผนก) คุณสามารถใช้การดําเนินการ LEFT JOIN หรือ RIGHT JOIN เพื่อสร้าง การรวมภายนอก
ถ้าคุณพยายามรวมเขตข้อมูลที่มี Memo หรือข้อมูลวัตถุ OLE ข้อผิดพลาดจะเกิดขึ้น
คุณสามารถรวมเขตข้อมูลตัวเลขสองเขตข้อมูลที่มีชนิดคล้ายกันได้ ตัวอย่างเช่น คุณสามารถรวมเขตข้อมูล AutoNumber และ Long ได้เนื่องจากเป็นชนิดที่เหมือนกัน อย่างไรก็ตาม คุณไม่สามารถรวมชนิดเขตข้อมูลแบบ Single และ Double ได้
ตัวอย่างต่อไปนี้แสดงถึงวิธีที่คุณสามารถรวมตารางประเภทและผลิตภัณฑ์บนเขตข้อมูล CategoryID ได้:
SELECT CategoryName, ProductName
FROM Categories INNER JOIN Products ON Categories.CategoryID = Products.CategoryID;
ในตัวอย่างก่อนหน้า CategoryID คือเขตข้อมูลที่รวมกัน แต่ไม่ได้รวมอยู่ในผลลัพธ์ของคิวรีเนื่องจากไม่ได้รวมอยู่ในคําสั่ง SELECT เมื่อต้องการรวมเขตข้อมูลที่รวมเข้าด้วยกัน ให้ใส่ชื่อเขตข้อมูลในคําสั่ง SELECT ในกรณีนี้ Categories.CategoryID
คุณยังสามารถลิงก์ส่วนคำสั่ง ON หลายรายการในคำสั่ง JOIN โดยใช้ไวยากรณ์ต่อไปนี้:
SELECT fields
FROM table1 INNER JOIN table2 ON table1.field1compoprtable2.field1 AND ON table1.field2compoprtable2.field2) OR ON table1.field3compoprtable2.field3)];คุณยังสามารถซ้อนคำสั่ง JOIN โดยใช้ไวยากรณ์ต่อไปนี้:
SELECT fields
FROM table1 INNER JOIN (table2 INNER JOIN [( ]table3 [INNER JOIN [( ]tablex [INNER JOIN ...)] ON table3.field3compoprtablex.fieldx)] ON table2.field2compoprtable3.field3) ON table1.field1compoprtable2.field2;LEFT JOIN หรือ RIGHT JOIN อาจถูกซ้อนภายใน INNER JOIN แต่ INNER JOIN อาจไม่ได้ถูกซ้อนภายใน LEFT JOIN หรือ RIGHT JOIN