คำสั่ง sql เลือกข้อมูลไม่ซ้ำกับข้อมูลในตารางอื่น

สมมุติว่า ต้องการเขียนคำสั่ง sql ใน VBA ให้เลือกข้อมูลจากตารางหนึ่ง โดยมีเงื่อนไขว่า ต้องไม่ซ้ำกับข้อมูลที่มีอยู่แล้วในอีกตารางหนึ่ง จะทำอย่างไร

เช่นต้องการสร้าง combo box ให้ผู้ใช้สามารถเลือกข้อมูลจากตารางสมาชิกทั้งหมด เพื่อสมัครเป็นสมาชิกอีกประเภทหนึ่ง แต่ถ้าสมาชิกที่สมัครแล้ว ก็จะไม่เอาชื่อมาแสดงใน combox ให้เลือก

ถ้าเป็นอย่างนี้ การเลือกข้อมูลจากตารางสมาชิกทั้งหมด จะต้องไม่ซ้ำกับข้อมูลในตารางสมาชิกที่จะสมัคร

สมมุติว่า สมาชิกกองทุนหมู่บ้าน มีสิทธิสมัครสมาชิกสวัสดิการชุมชน ต้องการสร้าง cbobox ให้เลือกข้อมูลจากตารางสมาชิกกองทุนหมู่บ้าน เพื่อสมัครเป็นสมาชิกสวัสดิการชุมชน แต่สมาชิกกองทุนหมู่บ้านที่สมัครเป็นสมาชิกสวัสดิการชุมชนแล้ว จะต้องไม่มีชื่อใน combobox

นั่นคือ การเลือกข้อมูลจากตารางสมาชิกกองทุนหมู่บ้าน ต้องไม่ซ้ำกับข้อมูลที่มีอยู่แล้วในตารางสมาชิกสวัสดิการชุมชน

ทีนี้เมื่อพิจารณาลักษณะเงื่อนไขที่ต้องการจะเห็นว่า ข้อมูลที่จะเลือกจากตารางกองทุนหมู่บ้าน คือ ต้องเป็นข้อมูลที่ไม่มี ในตารางสมาชิกสวัสดิการชุมชน

สมมุติว่า ตารางสมาชิกกองทุนหมู่บ้าน ชื่อ tblCustomers และมีข้อมูลดังนี้

cusID | custName
111 | สมหมาย
112 | สมศักดิ์
113 | สมศรี
114 | สมทรง
115 | สมบัติ
116 | สมถวิล
117 | สมนึก

ตารางสมาชิกสวัสดิการชุมชน ชื่อ tblWFMembers และมีข้อมูล ดังนี้

memID | custName
112 | สมศักดิ์
113 | สมศรี
116 | สมถวิล
117 | สมนึก

ข้อมูลที่จะนำมาให้เลือกใน combo box จะมีแค่

111 | สมหมาย
114 | สมทรง
115 | สมบัติ

เท่านั้น

วิธีการ

ให้เรากำหนดเงื่อนไขคือ กำหนด field ที่ ไม่มี (NOT IN) ในตาราง tblWFMembers โดยไปกำหนดใน WHERE clause เช่น

SELECT * FROM tblCustomers WHERE tblCustomer.custID not in (field memID ในตาราง tblWFMembers)

เขียนเป็นคำสั่ง เต็ม ๆ ได้ ดังนี้

SELECT * FROM tblCustomers WHERE tblCustomer.custID not in (SELECT memID FROM tblWFMembers)

ให้นำประโยค SQL นี้ ไปใส่ใน Row Source ของ combobox ที่สร้างขึ้น (อย่าลืมกำหนด Row Source Type เป็น Table/Query ด้วยนะ) ก็จะได้ข้อมูลให้เลือกตามต้องการ

3 ตอบกลับที่ คำสั่ง sql เลือกข้อมูลไม่ซ้ำกับข้อมูลในตารางอื่น

  1. ต๋อง พูดว่า:

    ขอบคุณครับ สำหรับความรู้ดีๆ

  2. Pro S Beginner พูดว่า:

    ขอบพระคุณมากเลยครับ กำล้งหาอยู่เลย

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out / เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out / เปลี่ยนแปลง )

Google+ photo

You are commenting using your Google+ account. Log Out / เปลี่ยนแปลง )

Connecting to %s

%d bloggers like this: