MySQL 是一種開源的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),廣泛應(yīng)用于 Web 應(yīng)用程序的開發(fā)和數(shù)據(jù)存儲。在數(shù)據(jù)庫應(yīng)用中,經(jīng)常需要合并不同表中的數(shù)據(jù),以便更好地進(jìn)行業(yè)務(wù)統(tǒng)計(jì)和分析。本文將簡單介紹如何使用 MySQL 垂直合并兩張表。
垂直合并是指將兩張表按照某個共同的列連接在一起,將它們的非重復(fù)列合并成一個新表。在 MySQL 中,可以使用 UNION 或 UNION ALL 關(guān)鍵字實(shí)現(xiàn)垂直合并。
-- 創(chuàng)建兩個測試表 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) ); -- 插入測試數(shù)據(jù) 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 實(shí)現(xiàn)垂直合并 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 實(shí)現(xiàn)垂直合并 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 關(guān)鍵字可以將兩張表中的記錄合并在一起,但會去掉重復(fù)數(shù)據(jù)。而 UNION ALL 關(guān)鍵字則可以將兩張表中所有的記錄合并在一起,并保留重復(fù)數(shù)據(jù)。
注意,在使用 UNION 或 UNION ALL 進(jìn)行垂直合并時,需要保證兩張表中要合并的列的類型和個數(shù)是匹配的。
下一篇用css畫卡通人物