将两列从一个表复制到另一个表

时间:2016-01-21 10:59:50

标签: mysql

无法找到我在其他地方寻找的确切内容。

所以我有表1

users
----------

id
username
password
bio
isuser
email

和表2

wp_users
----------

id
user_login
nice_username
password
email

'wp_users'表中有500行。我想将'id'和'user_login'复制到每行的users表('id'和'username')中。

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

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

2 个答案:

答案 0 :(得分:3)

您可以使用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次抓取内容都会插入到表格中(因此您可以使用WHEREGROUP BY,{{1在HAVING部分)等等。

答案 1 :(得分:0)

我相信你正在寻找一个简单的插入声明:

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插入一行。

相关问题