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;