【问题标题】:Copying two columns from one table to another将两列从一个表复制到另一个
【发布时间】:2016-01-21 19:12:11
【问题描述】:

在其他任何地方都找不到我正在寻找的东西。

所以我有表 1

users
----------

id
username
password
bio
isuser
email

和表 2

wp_users
----------

id
user_login
nice_username
password
email

“wp_users”表中有 500 行。我想将每行的“id”和“user_login”复制到用户表(“id”和“用户名”)中。

我该怎么做? MySQL 不是我的强项,哈哈。

更新:我已经更新了上面的表格,因为我试图简化它,但作为回报得到了错误的解决方案。

【问题讨论】:

标签: mysql


【解决方案1】:

您可以使用INSERT - SELECT 语句:

INSERT INTO `users` (id,username,password,bio,isuser,email) SELECT id,
user_login,null,null,null,null FROM `wp_users`;

您可以在SELECT 部分的每个字段上放置其他字段甚至静态数据。我放空值只是为了说明。

请记住,SELECT 获取的任何内容都将插入到INSERT 语句所说的表中(因此您可以在SELECT 部分使用WHEREGROUP BYHAVING 等子句)。

【讨论】:

    【解决方案2】:

    我相信您正在寻找一个简单的插入语句:

    INSERT INTO users (id,username)
    SELECT W.id,
           W.user_login
    FROM   wp_users W
    WHERE  NOT EXISTS (SELECT NULL
                       FROM   users U
                       WHERE  U.ID = W.ID);
    

    我假设您的 users 表中的其他列可以为空,如果不是,您可以在 select 语句中添加更多列,其中包含您想要的其他列的值。

    您没有提到任何其他键或约束,所以我假设没有。

    我还在WHERE 子句中提供了一个检查,以查看同一 ID 是否已存在一行,因此您只需为每个 ID 插入一行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-05
      • 2012-08-12
      • 2012-07-21
      • 1970-01-01
      • 2020-11-03
      • 2020-05-28
      • 1970-01-01
      • 2017-03-28
      相关资源
      最近更新 更多