ตัวอย่างการใช้ประโยชน์จากการกำหนด Join Property ใน Microsoft Access

ใน Microsoft Access การกำหนดค่า Join Property ได้อย่างถูกต้องเหมาะสมสามารถช่วยให้เราทำงานได้อย่างถูกต้อง โดนตัวอย่างที่แสดงจะสามารถใช้หาผลต่างของข้อมูลที่มีในตารางหนึ่ง แต่ไม่มีในอีกตารางหนึ่งด้วยการกำหนด Join Property ได้
ตัวอย่างการใช้ประโยชน์จากการกำหนด Join Property ใน Microsoft Access

ตัวอย่างการใช้ประโยชน์จากการกำหนด Join Property ใน Microsoft Access

โดยปกติแล้ว หากเราสร้างความสัมพันธ์ระหว่างตารางไว้แล้วตั้งแต่เริ่มแรก ดังตัวอย่าง

หน้าต่างความสัมพันธ์ใน Microsoft Access

ซึ่งจากความสัมพันธ์ระหว่างตาราง จะเห็นว่า ฐานข้อมูลนี้เป็นฐานข้อมูลเกี่ยวกับการสั่งซื้อสินค้า
ทั้งนี้สังเกตได้จากรายการฟิลด์ในตาราง Orders และ OrderDetails   

ลองพิจารณาที่ตาราง Orders จะเห็นว่ามีฟิลด์ CustomerID อยู่ นั่นหมายความว่า มีรหัสลูกค้าใดบ้างที่ได้มีรายการสั่งซื้อ
ทั้งนี้รายละเอียดของรหัสลูกค้านั้น ๆ สามารถดูได้ที่ตาราง Customers

ดังนั้น ถ้าต้องการทราบว่า บริษัทใดบ้างที่สั่งซื้อสินค้าไปแล้ว
สามารถสร้าง Select Query ได้ดัง Design View

Design View ของ Select Query ว่าบริษัทใดบ้างที่สั่งซื้อสินค้าไปแล้ว

ลองสังเกตที่เส้นความสัมพันธ์ ซึ่งจะ Default มาให้เลย เนื่องจากมีการสร้างความสัมพันธ์ระหว่างตารางไว้ตั้งแต่แรกแล้ว

หากลองคลิกขวาที่เส้นความสัมพันธ์ แล้ว คลิก Join Properties
จะเห็นหน้าต่าง Join Property แสดงขึ้นมา ดังรูป

หน้าต่าง Join Properties

จะเห็นว่า  เป็นความสัมพันธ์ประเภทที่ 1 

Only include rows where the joined fields from both tables are equal.

หมายถึงให้แสดงเฉพาะรายการ CustomerID ที่ตรงกันระหว่าง 2 ตาราง 

นั่นคือ ข้อมูลจะแสดงเฉพาะรายการลูกค้าที่สั่งซื้อสินค้าแล้วเท่านั้น 
ผลลัพธ์ที่ออกมาจะมี 830 รายการ ดังรูป

๋Join property เฉพาะ Record ที่ตรงกัน

แต่ถ้าเราต้องการทราบว่า  มีลูกค้าบริษัทใดบ้างใน ตาราง Customer ที่ยังไม่เคยสั่งซื้อสินค้าเลย
เราสามารถเปลี่ยนประเภทความสัมพันธ์เป็นประเภทที่ 2

Include ALL records from 'Customers' and only those records from 'Orders' where the joined fields are equal

การกำหนด Join Properties เป็นแบบ Include ALL records from

ผลลัพธ์ที่ได้เป็นดังนี้

ผลลัพธ์ที่ได้จาการกำหนด Join Properties เป็นแบบ Include ALL records from

ผลลัพธ์ที่ได้จาการกำหนด Join Properties เป็นแบบ

Include ALL records from 'Customers' and only those records from 'Orders' where the joined fields are equal

จะเห็นข้อมูลที่แสดงออกมามีทั้งหมด 832 รายการ จะเห็นว่ามากกว่าการ Join ประเภท 1 จำนวน 2 รายการด้วยกัน
ซึ่งก็ยังค้นหายากอยู่ดีว่ามีรายการลูกค้าบริษัทใดที่ยังไม่ได้สั่งซื้อ

 
ดังนั้น  ต้องลอง Criteria ข้อมูลเพิ่มเติม
หากลูกค้าใดยังไม่ได้สั่งซื้อสินค้า แสดงว่า ต้องไม่มีรายการ OrderID ของลูกค้านั้น ๆ
จึงต้อง Criteria ให้ ข้อมูลออกมาเฉพาะ รายการ OrderID ที่เป็นค่าว่าง (Null) 

โดยกำหนดว่า Is Null ดังรูป

การกำหนด Criteria ของ OrderID ที่เป็นค่าว่าง Null

หลังจากนั้น ลองดูข้อมูล จะพบว่า
มีลูกค้าที่ยังไม่ได้สั่งซื้อสินค้า 2 บริษัท เนื่องจากไม่มีรายการ OrderID ดังรูป

การหาผลต่างของข้อมูลที่มีในตารางหนึ่ง แต่ไม่มีในอีกตารางหนึ่งนั่นเอง

จากตัวอย่างที่แสดงให้ดู เป็นการหาผลต่างของข้อมูลที่มีในตารางหนึ่ง แต่ไม่มีในอีกตารางหนึ่งนั่นเองค่ะ

อย่างไรลองไปประยุกต์ใช้กับข้อมูลที่มีอยู่ดูนะคะ