【问题标题】:mysql update with several joinsmysql更新有几个连接
【发布时间】:2020-07-24 09:55:29
【问题描述】:

我想更新 2 加入.... 但是:

 UPDATE glpi.glpi_users 
FROM
    glpi.glpi_groups_users
    INNER JOIN glpi.glpi_groups ON glpi.glpi_groups_users.groups_id = glpi.glpi_groups.id
    INNER JOIN glpi.glpi_users ON glpi.glpi_users.id = glpi.glpi_groups_users.users_id 
    SET glpi.glpi_users.id = 2 
WHERE
    glpi.glpi_groups.`name` LIKE 'technique'

1064 - 您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以获取在“FROM”附近使用的正确语法 glpi.glpi_groups_users INNER JOIN glpi.glpi_groups ON glpi.glpi_groups_us' 在第 2 行 时间:0s

感谢您的帮助

【问题讨论】:

标签: mysql sql join sql-update


【解决方案1】:

我认为你想要的语法是:

UPDATE glpi.glpi_users u
INNER JOIN glpi.glpi_groups_users gu ON gu.users_id = u.id
INNER JOIN glpi.glpi_groups g ON g.id = gu.groups_id
SET u.id = 2 
WHERE g.name = 'technique'

也就是说:MySQL 更新/连接语法没有 FROM 子句 - 它看起来像 UPDATE ... JOIN ... SET ... WHERE ...

注意事项:

  • 由于没有通配符出现在右侧操作数中,name LIKE 'technique' 等价于 name = 'technique'

  • 表别名使查询更易于编写和阅读

【讨论】:

    猜你喜欢
    • 2013-08-08
    • 2012-01-10
    • 2014-08-19
    • 2015-03-22
    • 2015-07-29
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    • 2016-01-04
    相关资源
    最近更新 更多