MySQL是目前最流行的關系型數據庫之一,它的強大功能吸引了眾多開發者的選擇。在日常開發中,我們經常需要將兩個表中的數據進行合并,下面就來介紹一下如何使用MySQL合并兩個表的數據。
假設我們有兩個表名分別為table1和table2,它們的結構如下:
CREATE TABLE table1 ( id INT PRIMARY KEY, name VARCHAR(50), age INT ); CREATE TABLE table2 ( id INT PRIMARY KEY, address VARCHAR(100), phone VARCHAR(20) );
現在我們需要在一個新表中將table1和table2的數據合并,并且去除重復記錄,可以使用下面的SQL語句:
CREATE TABLE merged_table ( id INT PRIMARY KEY, name VARCHAR(50), age INT, address VARCHAR(100), phone VARCHAR(20) ); INSERT INTO merged_table(id, name, age, address, phone) 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;
上面的SQL語句中,我們首先創建了一個新的表merged_table,然后使用了UNION操作符將table1和table2的數據合并,同時使用NULL填充缺失的列。最后將合并后的數據插入到merged_table中,由于PRIMARY KEY的限制,重復記錄會被自動去除。
如果我們需要保留重復記錄,可以將UNION操作符替換為UNION ALL操作符:
INSERT INTO merged_table(id, name, age, address, phone) 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;
上面的SQL語句中,使用了UNION ALL操作符保留了重復記錄。
綜上所述,MySQL提供了強大的數據合并功能,我們可以使用UNION操作符將兩個表的數據合并并去除重復記錄,也可以使用UNION ALL操作符保留重復記錄。