April 17, 2026
Set Operation in SQL
Part of SQL
ใน SQL มีคำสั่ง INTERSECT, UNION, UNION ALL, EXCEPT ใช้ JOIN ระหว่าง Query SELECT
ตัวอย่าง
SELECT * FROM a
UNION
SELECT * FROM b
แล้วมันได้ผลอย่างไร
INTERSECT-- เราจะได้ข้อมูลจากทั้งสองตาราง โดยเอาเฉพาะค่าตรงกันในคอลัมน์ที่มีตำแหน่งตรงกัน มีข้อดีคือ ลบค่า Duplicate ได้ด้วยSELECT name FROM Table_A INTERSECT SELECT name FROM Table_B; Table_A Table_B --------- --------- Alice Bob Eve Charlie Bob Eve Result: ------ name ------ Eve BobUNION-- เราจะได้ข้อมูลจากทั้งสองตาราง จะใช้ได้เฉพาะ Query ที่มีคอลัมน์ตรงกัน มันช่วยตัดค่าที่ Duplicate ให้ด้วยSELECT name FROM Table_A UNION SELECT name FROM Table_B; Table_A Table_B --------- --------- Alice Bob Eve Charlie Bob Eve Result: ------ name ------ Alice Eve Bob CharlieUNION ALL-- ได้เหมือนUNIONแต่ไม่ตัดค่าที่ DuplicateEXCEPT-- เราจะได้ค่าที่มาจากตารางแรกเท่านั้น ถ้ามีข้อมูลในตารางใน Query ที่ 2 ก็จะไม่เอาค่านั้นมาด้วยSELECT name FROM Table_A EXCEPT SELECT name FROM Table_B; Table_A Table_B --------- --------- Alice Bob Eve Charlie Bob Eve Result: ------ name ------ Alice