Mysql 如何从带有内部联接的select更新字段值?
我正在尝试使用带有内部联接的select查询更新mysql数据库中的字段值 我现在得到 1064-您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以了解第5行的“AS cc WHERE cc.account_id=na.account_id”附近使用的正确语法 如何修复此查询以使其正常工作?我想更新名为pdm_id的字段,将其设置为cp.person_idMysql 如何从带有内部联接的select更新字段值?,mysql,sql,database,sql-update,Mysql,Sql,Database,Sql Update,我正在尝试使用带有内部联接的select查询更新mysql数据库中的字段值 我现在得到 1064-您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以了解第5行的“AS cc WHERE cc.account_id=na.account_id”附近使用的正确语法 如何修复此查询以使其正常工作?我想更新名为pdm_id的字段,将其设置为cp.person_id 谢谢您以抄送的身份删除了,对吗?在你的代码中找不到它。你的作为ac在哪里?你能解释一下帐户在其他表上是如何关联的吗?对不起,我刚
谢谢您以抄送的身份删除了
,对吗?在你的代码中找不到它。你的作为ac
在哪里?你能解释一下帐户
在其他表上是如何关联的吗?对不起,我刚刚更新了我的帖子,我删除了cc yes并用a替换了ac。因此在表temp\u accounts中有company\u code列,我可以喜欢accounts表。然后,我可以通过临时账户字段中的FSM字段链接到联系人。。我不确定我是否解释清楚了。谢谢你的帮助。您的查询得到了正确的答案,但是,我对其进行了更新,只做了一点小改动。我不认为我在我的帖子中说得很清楚,所以这会导致一些混乱,但多亏了你,我才能够完成更新:)
UPDATE accounts AS na
SET na.pdm_id = (
SELECT cp.person_id FROM `temp_accounts` AS ta INNER JOIN call_managment_system.accounts AS a ON ta.company_code = a.company_code
INNER JOIN contact_personal AS cp ON cp.name = ta.FSM AND contact_link = 'PDM'
)
WHERE a.account_id = na.account_id
UPDATE accounts na
INNER JOIN call_managment_system.accounts a
ON a.account_id = na.account_id
INNER JOIN temp_accounts ta
ON ta.company_code = a.company_code
INNER JOIN contact_personal cp
ON cp.name = ta.FSM
SET na.pdm_id = cp.person_id
WHERE contact_link = 'PDM'