无法找到我在其他地方寻找的确切内容。
所以我有表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。
更新:我已经更新了上面的表格,因为我试图简化它,但反过来得到了错误的解决方案。
答案 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
次抓取内容都会插入到表格中(因此您可以使用WHERE
,GROUP 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插入一行。