ใช้ UNION รวมผลลัพธ์จากสองคอลัมน์ (หรือสองตาราง) และลบค่าซ้ำออกโดยอัตโนมัติ
ตัวอย่างสร้างตารางแรก DemoTable1
mysql> create table DemoTable1 ( Value1 int ); Query OK, 0 rows affected (0.56 sec)
mysql> insert into DemoTable1 values(1); Query OK, 1 row affected (0.13 sec) mysql> insert into DemoTable1 values(2); Query OK, 1 row affected (0.08 sec) mysql> insert into DemoTable1 values(3); Query OK, 1 row affected (0.12 sec) mysql> insert into DemoTable1 values(4); Query OK, 1 row affected (0.12 sec)
ตารางที่สอง DemoTable2
mysql> create table DemoTable2 ( Value2 int ); Query OK, 0 rows affected (0.62 sec)
mysql> insert into DemoTable2 values(3); Query OK, 1 row affected (0.14 sec) mysql> insert into DemoTable2 values(4); Query OK, 1 row affected (0.15 sec) mysql> insert into DemoTable2 values(5); Query OK, 1 row affected (0.16 sec) mysql> insert into DemoTable2 values(6); Query OK, 1 row affected (0.08 sec)
คำสั่ง UNION รวมค่าที่ไม่ซ้ำจากทั้งสองตาราง
mysql> select Value1 from DemoTable1 UNION select Value2 from DemoTable2;
ผลลัพธ์
+--------+ | Value1 | +--------+ | 1 | | 2 | | 3 | | 4 | | 5 | | 6 | +--------+ 6 rows in set (0.00 sec)
คำอธิบาย: ค่า 3 และ 4 ที่มีในทั้งสองตาราง จะแสดงเพียงครั้งเดียว (UNION = DISTINCT)
ความแตกต่าง:
UNION= ลบค่าซ้ำ (เหมือน DISTINCT) - ช้ากว่าUNION ALL= เก็บค่าซ้ำไว้ - เร็วกว่า
ใช้ UNION ALL เมื่อแน่ใจว่าข้อมูลไม่ซ้ำ หรือต้องการเก็บค่าซ้ำไว้