วันพฤหัสบดีที่ 16 กันยายน พ.ศ. 2553

ความแตกต่างของคำสั่งSQL Union กับ Union All ?

คำสั่ง UNION
คำสั่ง UNION เป็นคำสั่งที่ใช้ในการ select ดึงข้อมูลที่มีความสัมพันธ์กันระหว่าง 2 ตาราง จริงๆ ก็เหมือนกับการใช้คำสั่ง JOIN นั่นแหล่ะครับ แต่อย่างไรก็ตาม ถ้าใช้คำสั่ง UNION มันจะทำการดึงข้อมูลมาให้เราเฉพาะที่ข้อมูลในแถว และคอลัมน์ไม่เหมือนกันมาให้ คล้ายๆกับการใช้คำสั่ง distinct นั่นแหล่ะครับ

คำสั่ง UNION ALL
ส่วน คำสั่ง UNION ALL ก็เหมือนกับคำสั่ง UNION แต่ข้อมูลในทุกแถวและทุกคอลัมน์จะกถูกดึงออกมาหมด ไม่สนใจว่าจะเหมือนหรือไม่เหมือนกันก็ตาม

ความแตกต่างของคำสั่ง UNION กับ คำสั่ง UNION ALL
ความแตกต่างของคำสั่ง UNION กับ คำสั่ง UNION ALL ก็คือ คำสั่ง UNION ALL จะดึงข้อมูลในแถวและคอลัมน์ที่ซ้ำกันออกมาด้วย แต่ คำสั่ง UNION จะดึงข้อมูลในแถวและคอลัมน์ที่ไม่ซ้ำกัน

และการใช้คำสั่ง UNION จะมีประสิทธิภาพมากกว่าการใช้คำสั่ง ELECT DISTINCT

ตัวอย่างเช่น
Table 1 : First,Second,Third,Fourth,Fifth
Table 2 : First,Second,Fifth,Sixth

ผลลัพธ์
UNION: First,Second,Third,Fourth,Fifth,Sixth (สังเกตจะเห็นว่าผลลัพธ์ที่แสดงไม่ซ้ำกัน)
UNION ALL: First,First,Second,Second,Third,Fourth,Fifth,Fifth,Sixth,Sixth (สังเกตจะเห็นว่าผลลัพธ์ที่แสดงซ้ำกัน)

ไม่มีความคิดเห็น:

แสดงความคิดเห็น