MySQL การใช้งานคำสั่ง UNION

UNION คือคำสั่งใน SQL ที่ใช้สำหรับรวมผลลัพธ์จากคำสั่ง SELECT หลายชุดเข้าด้วยกัน
โดยผลลัพธ์จะไม่ซ้ำกัน (distinct)

รูปแบบคำสั่ง

SELECT column1, column2 FROM table1
UNION
SELECT column1, column2 FROM table2;
  • จำนวนคอลัมน์, ชนิดข้อมูล และลำดับคอลัมน์ในคำสั่ง SELECT ทั้งสองชุดต้องตรงกัน

UNION vs UNION ALL

คำสั่ง UNION และ UNION ALL จะให้ผัลลัพธ์ต่างกัน ดังนี้

  • UNION รวมผลลัพธ์ และลบแถวที่ซ้ำออก
  • UNION ALL รวมผลลัพธ์ทั้งหมด (รวมถึงแถวที่ซ้ำ)

ตัวอย่างการใช้งาน

รวมรายชื่อนักแสดง (actor) และพนักงาน (staff) เข้าด้วยกัน

SQL
SELECT first_name, last_name FROM actor
UNION
SELECT first_name, last_name FROM staff;
  • ดึงรายชื่อจากสองตารางคือ actor และ staff
  • หากมีชื่อ-นามสกุลที่เหมือนกัน จะไม่แสดงซ้ำ

ใช้ UNION ALL เพื่อแสดงผลลัพธืทั้งหมด (รวมรายการที่ซ้ำด้วย)

SQL
SELECT first_name, last_name FROM actor
UNION ALL
SELECT first_name, last_name FROM staff;
  • ผลลัพธ์จะมีข้อมูลซ้ำกันได้จากทั้งสองตาราง

รวมรหัสลูกค้า กับรหัสพนักงาน (แสดงเฉพาะ ID)

SQL
SELECT customer_id AS id FROM customer
UNION
SELECT staff_id AS id FROM staff;
แชร์เรื่องนี้