Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

เลือกค่าที่ไม่ซ้ำจากสองคอลัมน์ใน MySQL ด้วย UNION

ใช้ 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 เมื่อแน่ใจว่าข้อมูลไม่ซ้ำ หรือต้องการเก็บค่าซ้ำไว้