Merge ตารางด้วย CREATE TABLE ... SELECT ... UNION
สร้างตารางใหม่จากการรวมข้อมูลสองตารางด้วย UNION (ลบซ้ำ) หรือ UNION ALL (เก็บทั้งหมด)
ไวยากรณ์
CREATE TABLE newTable SELECT * FROM table1 UNION SELECT * FROM table2;
ตัวอย่าง
CREATE TABLE FirstTable (Id INT, PersonName VARCHAR(20)); INSERT INTO FirstTable VALUES (10, 'Larry'), (20, 'David'); CREATE TABLE SecondTable (Id INT, PersonName VARCHAR(20)); INSERT INTO SecondTable VALUES (30, 'Chris'), (40, 'Robert');
Merge ด้วย UNION
CREATE TABLE MergeBothTableDemo SELECT * FROM FirstTable UNION SELECT * FROM SecondTable;
ผลลัพธ์
+------+------------+ | Id | PersonName | +------+------------+ | 10 | Larry | | 20 | David | | 30 | Chris | | 40 | Robert | +------+------------+
UNION vs UNION ALL
| คำสั่ง | พฤติกรรม | ประสิทธิภาพ |
|---|---|---|
| UNION | Distinct (ลบซ้ำ) | ช้ากว่า (ต้อง Sort/Hash) |
| UNION ALL | All rows (รวมซ้ำ) | เร็วกว่า |
ข้อควรระวัง
- โครงสร้างคอลัมน์ต้องตรงกัน (จำนวน, ชนิด, ลำดับ)
- ไม่คัดลอก Index, PK, FK, Auto Increment
- Column Name มาจาก SELECT แรก
- ใช้ Alias หากชื่อคอลัมน์ต่างกัน:
SELECT id AS uid FROM t1 UNION SELECT user_id FROM t2