mysql - 尝试更新并遇到错误

标签 mysql

好吧,我一整天都在尝试这样做。我知道这个问题之前已经被问过并得到回答,但我一直无法思考如何使这项工作发挥作用。

UPDATE 'domain_main.registrarMultiID' =
(
    SELECT r.MultiID#, m.RecId, d.domainId
    FROM domain_main d, Master m, registrar_accounts_multi r
    WHERE d.domainId = m.RecId
    AND r.account = m.Account_CustomerNumber
    AND r.password = m.Password
    AND r.logonName = m.Logon_Username
)

我在这里缺少什么?我知道我不应该在选择中引用domain_main,但我不确定如何以另一种方式解决这个问题。

最佳答案

你的语法错误

  UPDATE 'domain_main.registrarMultiID' =
    (
        SELECT r.MultiID#, m.RecId, d.domainId
        FROM domain_main d, Master m, registrar_accounts_multi r
        WHERE d.domainId = m.RecId
        AND r.account = m.Account_CustomerNumber
        AND r.password = m.Password
        AND r.logonName = m.Logon_Username
    )

正确的语法如下。我假设您要将 domain_main 表的 registrarMultiID 列的值设置为属于 registrar_accounts_multiMultiID# 列值> 表。

UPDATE 'domain_main' As d
INNER JOIN Master as m
   ON d.domainId = m.RecId
INNER JOIN registrar_accounts_multi as r
   ON r.account = m.Account_CustomerNumber
      AND r.password = m.Password
      AND r.logonName = m.Logon_Username
SET d.registrarMultiID = r.MultiID#

关于mysql - 尝试更新并遇到错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19152366/

相关文章:

python - 'HY00 0', ' SQL 包含 31 个参数标记,但使用 access mdb 文件提供了 32 个参数'

MySQL 更改触发器以使用动态数据库名称

mysql - MySQL外键引用多列的用法

mysql - 返回 MySQL 连接中的所有项目,而不仅仅是匹配的项目

php - 从 PHP 函数获取数组

MySQL 使用虚拟列作为连接点?

mysql - 如何为长文本创建索引(mysql、innodb)?

mysql - CryptDB - 无法连接到代理(错误 1105 (HY000) : (proxy) all backends are down)

mysql - 如果子任务的标签为空,则继承父任务的标签

c# - MySQL 使用旧的身份验证方法