Ken*_*son 19 mysql join sql-update
我在此之前阅读了各种帖子.但它们似乎都不适合我.
正如标题所示,我正在尝试从另一个表中的列更新一列.我不记得以前有这个问题..
1.表:user_settings.contact_id,我想用contacts.id更新where (user_settings.account_id == contacts_account_id)
2.以前通过account_id将联系人链接到用户帐户.但是,现在我们要将联系人链接到user_settingsviacontacts.id
以下是我尝试过的一些例子,尽管它们都没有奏效.我会感兴趣的是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
Run Code Online (Sandbox Code Playgroud)
例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
Run Code Online (Sandbox Code Playgroud)
例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 )
Run Code Online (Sandbox Code Playgroud)
我觉得我的大脑只是关闭了我,并希望重新启动它的任何颠簸.谢谢 :)
Fly*_*wat 38
根据MySQL文档,要进行跨表更新,您不能使用连接(如在其他数据库中),而是使用where子句:
http://dev.mysql.com/doc/refman/5.0/en/update.html
我认为这样的事情应该有效:
UPDATE User_Settings, Contacts
SET User_Settings.Contact_ID = Contacts.ID
WHERE User_Settings.Account_ID = Contacts.Account_ID
Run Code Online (Sandbox Code Playgroud)