【发布时间】:2011-04-18 15:00:19
【问题描述】:
在此之前我阅读了各种帖子。但它们似乎都不适合我。
正如标题所示,我正在尝试从另一个表中的一列更新一列。我不记得以前有这个问题..
1. 表:user_settings.contact_id,我要更新为contacts.id where (user_settings.account_id == contacts_account_id)
2. 以前,联系人是通过 account_id 链接到用户帐户的。但是,现在我们想通过contacts.id 将联系人链接到user_settings
以下是我尝试过的一些示例,尽管它们都没有奏效。我会对 A.) 为什么它们不起作用和 B.) 我应该怎么做。
示例 A:
UPDATE user_settings
SET user_settings.contact_id = contacts.id
FROM user_settings
INNER JOIN contacts ON user_settings.account_id = contacts.account_id
示例 B:
UPDATE (SELECT A.contact_id id1, B.id id2
FROM user_settings A, contacts B
WHERE user_settings.account_id = contacts.account_id)
SET id1 = id2
示例 C:
UPDATE user_settings
SET user_settings.contact_id = (SELECT id
FROM contacts
WHERE (user_settings.account_id = contacts.account_id)
WHERE EXISTS ( user_settings.account_id = contacts.account_id )
我觉得我的大脑刚刚对我关闭,如果有任何颠簸重新启动它,我将不胜感激。谢谢:)
【问题讨论】:
-
有人能告诉我为什么这被否决,这样我以后就可以避免它了吗?
标签: mysql join sql-update