Mysql 如何将表的数据传输到新表?

Mysql 如何将表的数据传输到新表?,mysql,Mysql,我需要将两个表的数据传输到新表中,这里是简化表 表1 user_id_slot_1 | user_id_slot_2 | some_column | some_column_2 表2 user_id_slot_1 | user_id_slot_2 | some_column | some_column_2 注: 我需要传输/复制的表1和表2中的数据几乎相同 用户\u id\u插槽\u 1和用户\u id\u插槽\u 2应选择其中一个 空/空 列的名称与实际数据库的名称不同 新桌子 id |

我需要将两个表的数据传输到新表中,这里是简化表

表1

user_id_slot_1 | user_id_slot_2 | some_column | some_column_2
表2

user_id_slot_1 | user_id_slot_2 | some_column | some_column_2
注:

我需要传输/复制的表1和表2中的数据几乎相同

用户\u id\u插槽\u 1和用户\u id\u插槽\u 2应选择其中一个 空/空

列的名称与实际数据库的名称不同

新桌子

id | user_id | some_column | some_column_2
如何从表1和表2中传输数据

如何将列user\u id\u slot\u 1和user\u id\u slot\u 2合并为一个列并将其传输到user\u id

更新:

我不需要传输/复制表1和表2的ID,新表需要自动递增它。

这是您想要的吗

create table3 as
    select id, coalesce(user_id_slot_1, user_id_slot_2) as user_id,
           some_column, some_column_2
    from table1
    union all
    select id, coalesce(user_id_slot_1, user_id_slot_2) as user_id,
           some_column, some_column_2
    from table2;

假设新表已经存在,您可以使用INSERT INTO。。。选择以移动数据。我在这里使用了UNIONALL,假设您不想删除两个源表之间出现的重复项

INSERT INTO new_table (`user_id`, `some_column`, `some_column_2`)
SELECT COALESCE(user_id_slot_1, user_id_slot_2),
       some_column,
       some_column2
FROM table1
UNION ALL
SELECT COALESCE(user_id_slot_1, user_id_slot_2),
       some_column,
       some_column2
FROM table2
注意:如果不为空,则上述查询中的联合用户\u id\u slot\u 1、用户\u id\u slot\u 1术语将选择用户\u id\u slot\u 1,否则将选择用户\u id\u slot\u 2。假设每个记录都有一个且只有一个非空,这应该是很好的

假设新的_table表的id列设置为auto increment,那么MySQL将为您分配这些值。您所需要做的就是在新的_表中省略id的一个值,其余的由MySQL处理

您应该使用以下方法创建新表:

CREATE TABLE new_table (
    id INT UNSIGNED NOT NULL AUTO_INCREMENT,
    user_id INT NOT NULL,
    some_column VARCHAR(50) NOT NULL,
    some_column_2 VARCHAR(50) NOT NULL
)

因此,在4个用户ID(2行*2列)中,只有1个有值?是的,插槽1或插槽2表1和表2有什么不同?表1有表2没有的列,反之亦然。我唯一需要传输/复制的是表1和表2的列。您的更新将使已经给出的答案无效。你甚至没有向我们展示新表应该是什么样子的示例数据。我不确定创建是否正确,但我想将数据从两个表传输/复制到新表。但我会尝试这个问题。如果已经定义了表,则可以改为插入。将尝试此操作并在之后响应!我收到一个错误,在分析过程中发现1个错误。无法识别的语句类型。几乎全部就位339@DumbQuestion那么你的语法就有问题了。假设您正确地替换了列名和表名,我给您的查询应该可以正常工作。最有可能的问题在于您的PHP代码,可能是逃逸造成的。对不起!它可以工作,但新表中的id不是自动递增的,也不是从1开始的,而且user_id上有一些0值