SQL:将具有相同标题的所有表复制到一个表中

时间:2013-04-27 02:35:18

标签: mysql sql

数据库名称:car_price

TABLES名称

LIST_1 list_2 list_3 list_4

LIST_1

car_name   price      owner

benz        100$     mark
safari      1000$    james

LIST_2

car_name   price      owner

TVS          100$     crick
apache       400$     watson

LIST_3

car_name   price      owner

cbz          1000$     leo
unicorn      1600$     brick

我想做什么

我想将所有这些复制到一个表中,以便新表看起来像

NEW_TABLE

car_name   price      owner

benz        100$     mark
safari      1000$    james
TVS          100$     crick
apache       400$     watson
cbz          1000$     leo
unicorn      1600$     brick
希望你们能轻松帮助我...... 等待...

更新

现在我想更改查询,以便将其他表中的所有行复制到list_3表中,以便LIST_3表看起来像

LIST_3

car_name   price      owner

benz        100$     mark
safari      1000$    james
TVS          100$     crick
apache       400$     watson
cbz          1000$     leo
unicorn      1600$     brick

2 个答案:

答案 0 :(得分:2)

您可以通过执行以下语句

来实现此目的
INSERT INTO `NEW_TABLE`
SELECT *
FROM `list_1`
UNION
SELECT *
FROM `list_2`
UNION
SELECT *
FROM `list_3`

更新

以下查询适用于您更新的问题。

INSERT INTO `list_3`
SELECT *
FROM `list_1`
UNION
SELECT *
FROM `list_2`

答案 1 :(得分:0)

您应该使用UNIONUNION ALL。如果list_1,list_2,list_3表中存在重复行,并且您希望将它们保留在新表中,请使用UNION ALL。如果您想删除重复项,请使用UNION

INSERT INTO NEW_TABLE
    SELECT * FROM LIST_1
UNION ALL
    SELECT * FROM LIST_2
UNION ALL
    SELECT * FROM LIST_3

INSERT INTO NEW_TABLE
    SELECT * FROM LIST_1
UNION
    SELECT * FROM LIST_2
UNION
    SELECT * FROM LIST_3