Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

รวมผลลัพธ์หลาย SELECT ใน MySQL ด้วย UNION ALL

บทความนี้สาธิตการใช้ UNION ALL เพื่อรวมผลลัพธ์จากหลายคำสั่ง SELECT เป็นชุดผลลัพธ์เดียว (เก็บแถวซ้ำ ไม่ตัดออก)

คิวรี UNION ALL สร้างลำดับเลขยกกำลัง 10

mysql> SELECT 100 AS Number
UNION ALL SELECT 1000 AS Number
UNION ALL SELECT 10000 AS Number
UNION ALL SELECT 100000 AS Number
UNION ALL SELECT 1000000 AS Number
UNION ALL SELECT 10000000 AS Number
UNION ALL SELECT 100000000 AS Number
UNION ALL SELECT 1000000000 AS Number;

ผลลัพธ์ (8 แถว)

+------------+
| Number     |
+------------+
| 100        |
| 1000       |
| 10000      |
| 100000     |
| 1000000    |
| 10000000   |
| 100000000  |
| 1000000000 |
+------------+

คำอธิบาย:

  • UNION ALL - รวมผลลัพธ์ทุกแถว รวมแถวซ้ำ (Fast - ไม่ต้อง Dedup)
  • UNION (ไม่มี ALL) - รวมและลบแถวซ้ำออก (Slow - ต้อง Sort/Dedup)
  • ทุก SELECT ต้องมีจำนวนคอลัมน์ และชนิดข้อมูลตรงกัน
  • AS Number - ตั้ง Alias ให้คอลัมน์ผลลัพธ์ (ใช้จาก SELECT แรก)

กรณีใช้งาน:

  • สร้างชุดข้อมูลทดสอบ (Test Data Generation)
  • รวมข้อมูลจากหลายตารางที่มีโครงสร้างเหมือนกัน (Partitioned Tables)
  • สร้าง Sequence/Series ได้โดยไม่ต้องมีตารางจริง