เมื่อต้องการรวมค่าที่ไม่ซ้ำกัน (Distinct) จากสองคอลัมน์ แล้วแสดงในคอลัมน์เดียว สามารถใช้ UNION ซึ่งจะลบค่าซ้ำออกโดยอัตโนมัติ
ตัวอย่างการสร้างตาราง
mysql> create table DemoTable (
Name1 varchar(100),
Name2 varchar(100) );
Query OK, 0 rows affected (0.58 sec)
เพิ่มข้อมูล
mysql> insert into DemoTable values('Adam','Bob');
Query OK, 1 row affected (0.21 sec)
mysql> insert into DemoTable values('Adam','Bob');
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable values('David','Chris');
Query OK, 1 row affected (0.13 sec)
แสดงข้อมูลทั้งหมด
mysql> select * from DemoTable;
+-------+-------+ | Name1 | Name2 | +-------+-------+ | Adam | Bob | | Adam | Bob | | David | Chris | +-------+-------+ 3 rows in set (0.00 sec)
คำสั่ง UNION รวมค่าที่ไม่ซ้ำจากทั้งสองคอลัมน์
mysql> select Name1 from DemoTable UNION select Name2 from DemoTable;
ผลลัพธ์
+-------+ | Name1 | +-------+ | Adam | | David | | Bob | | Chris | +-------+ 4 rows in set (0.02 sec)
คำอธิบาย:
UNION= รวมผลลัพธ์และลบค่าซ้ำ (เหมือนDISTINCT)UNION ALL= รวมผลลัพธ์แต่เก็บค่าซ้ำไว้ (เร็วกว่า)- จำนวนคอลัมน์และชนิดข้อมูลในทั้งสอง SELECT ต้องตรงกัน