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

รวมสองตารางและเพิ่มคอลัมน์ใหม่ด้วย UNION ใน MySQL

ใช้ UNION รวมผลลัพธ์สอง SELECT แล้วเพิ่มคอลัมน์คงที่ในแต่ละ SELECT

สร้างตารางแรกและเพิ่มข้อมูล

mysql> CREATE TABLE DemoTable1 (
    -> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> Name VARCHAR(100)
    -> );
mysql> INSERT INTO DemoTable1(Name) VALUES('Chris'), ('Robert');

สร้างตารางที่สองและเพิ่มข้อมูล

mysql> CREATE TABLE DemoTable2 (
    -> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> Name VARCHAR(100)
    -> );
mysql> INSERT INTO DemoTable2(Name) VALUES('David'), ('Bob');

คำสั่ง UNION พร้อมเพิ่มคอลัมน์ Age

mysql> SELECT Id, Name, 27 AS Age FROM DemoTable1
    -> UNION
    -> SELECT Id, Name, 20 AS Age FROM DemoTable2;

ผลลัพธ์:

+----+--------+-----+
| Id | Name   | Age |
+----+--------+-----+
| 1  | Chris  | 27  |
| 2  | Robert | 27  |
| 1  | David  | 20  |
| 2  | Bob    | 20  |
+----+--------+-----+

คำอธิบาย: UNION รวมผลลัพธ์ (ลบแถวซ้ำ) | แต่ละ SELECT ต้องมีจำนวนและลำดับคอลัมน์ตรงกัน | ใช้ค่าคงที่ 27 และ 20 AS Age ในแต่ละ SELECT | UNION ALL จะไม่ลบแถวซ้ำ