我想知道是否可以将所有数据从表中的一列移动到另一个表.这是我正在尝试做的事情:
表1:用户 - 试图读取的列+ move = oauth_access_key和oauth_access_secret
表2:account_users - 目标列:oauth_token_key,oauth_token_secret
这些表之间的关系键是"user_id".
这可能在一个查询中?我知道这很容易在PHP中完成,但我想知道是否可以在纯SQL中完成.
提前致谢.
Jac*_*cob 24
UPDATE users, account_users
SET account_users.oauth_token_key=users.oauth_access_key,
account_users.oauth_token_secret = users.oauth_access_secret
WHERE account_users.user_id=users.user_id;
Run Code Online (Sandbox Code Playgroud)
您可以JOIN在MySQL Update上使用语法.
我认为你要找的答案是
INSERT INTO `account_users` (`user_id`, `oauth_token_key`, `oauth_token_secret`)
SELECT `user_id`, `oauth_access_key`, `oauth_access_secret` FROM `user`
ON DUPLICATE KEY UPDATE
`oauth_token_key` = VALUES(`oauth_token_key`),
`oauth_token_secret` = VALUES(`oauth_token_secret`);
Run Code Online (Sandbox Code Playgroud)
我假设你想要移动数据,就像'把它放在尚未存在的地方'.
以下是一份文档VALUES():http://dev.mysql.com/doc/refman/5.0/en/miscellaneous-functions.html#function_values
由于标题是 SQL,而不是特定于 DB...对于那些在搜索Postgres时偶然发现此问题的人来说,这是一个解决方案:
UPDATE account_users
SET oauth_token_key = users.oauth_access_key,
oauth_token_secret = users.oauth_access_secret
FROM profiles
WHERE account_users.user_id = users.user_id;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18704 次 |
| 最近记录: |