Nov 27, 2008

อยู่ใน A แต่ไม่อยู่ใน B

ในระบบฐานข้่อมูลอย่าง mySQL มีหลายคำสั่งที่จะช่วยให้งานของเราง่ายขึ้น

อย่างคำสั่ง UNION ซึ่งนำการค้นข้อมูลจากหลายๆ คำค้นมาต่อเชื่อมกันเป็นตารางเดียว

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

(Query1) UNION (Query2)

โอ้ววว สั้นจริงๆ แฮะๆ

ผลลัพธ์ที่จะได้จากคำสั่งเมื่อกี้คือ

แถวที่เกิดขึ้นจะเกิดจาก ข้อมูลทั้งสองต่อเรียงกัน



เอาล่ะ สืบต่อจากหัวข้อก็คือ

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

จะเขียนคำสั่งอย่างไรดี???

ก่อนหน้านี้ ผู้เขียนประสบปัญหาจากข้อมูลที่มีจำนวนมาก

ตัดสินใจไม่ได้สักที ว่าจะเริ่มคัดกรองอย่างไร

จนมาจบลงที่ ขั้นตอนง่ายๆ ของเรื่อง SUBSET


มาดูลักษณะคำสั่งที่ใช้กัน

- อยู่ทั้งใน A และ B

SELECT a.id FROM a LEFT JOIN b ON a.id = b.aid WHERE a.id IS NOT NULL or b.aid IS NOT NULL;

- อยู่ใน A แต่ไม่อยู่ ใน B

SELECT a.id FROM a LEFT JOIN b ON a.id = b.aid WHERE b.aid IS NULL;


ลองไปใช้ดูนะครับ

ลิงค์อ่านเพิ่มเติมนะครับ :: Link1

No comments:

Post a Comment

Blog Comment

บทความที่ได้รับความนิยม