MySQL 是一種開源的關系型數據庫管理系統,廣泛應用于 Web 應用程序的開發和數據存儲。在數據庫應用中,經常需要合并不同表中的數據,以便更好地進行業務統計和分析。本文將簡單介紹如何使用 MySQL 垂直合并兩張表。
垂直合并是指將兩張表按照某個共同的列連接在一起,將它們的非重復列合并成一個新表。在 MySQL 中,可以使用 UNION 或 UNION ALL 關鍵字實現垂直合并。
-- 創建兩個測試表 CREATE TABLE table1 ( id INT(11) PRIMARY KEY AUTO_INCREMENT, name VARCHAR(20), age INT(11) ); CREATE TABLE table2 ( id INT(11) PRIMARY KEY AUTO_INCREMENT, address VARCHAR(50), phone VARCHAR(20) ); -- 插入測試數據 INSERT INTO table1 (name, age) VALUES ('Tom', 18), ('Jack', 20), ('Lucy', 22); INSERT INTO table2 (address, phone) VALUES ('Beijing', '123456'), ('Shanghai', '789012'), ('Guangzhou', '345678'); -- 使用 UNION 實現垂直合并 SELECT id, name, age, null as address, null as phone FROM table1 UNION SELECT id, null as name, null as age, address, phone FROM table2; -- 使用 UNION ALL 實現垂直合并 SELECT id, name, age, null as address, null as phone FROM table1 UNION ALL SELECT id, null as name, null as age, address, phone FROM table2;
通過以上代碼,我們可以看到,使用 UNION 關鍵字可以將兩張表中的記錄合并在一起,但會去掉重復數據。而 UNION ALL 關鍵字則可以將兩張表中所有的記錄合并在一起,并保留重復數據。
注意,在使用 UNION 或 UNION ALL 進行垂直合并時,需要保證兩張表中要合并的列的類型和個數是匹配的。