更新/内部连接

13z8s7eq  于 2021-06-19  发布在  Mysql
关注(0)|答案(2)|浏览(305)

这个问题在这里已经有答案了

如何在更新查询中进行3表连接(6个答案)
两年前关门了。
我想做一个 UPDATE 带有 INNER JOIN(MY)SQL . 我已经做了一些示例,并编辑了我的表名和表列。但我的mysql仍然不断给我一个错误(#1064)。
错误
sql语法有错误;查看与您的mysql服务器版本相对应的手册,以了解第5行中使用“from favorites inner join images on favorites.image_id=images.id w”的正确语法
sql语句

UPDATE
  favorites
SET
  favorites.archive = 1
FROM
  favorites
INNER JOIN
  images
ON
  favorites.image_id = images.id
WHERE
  favorites.user_id = '1'

提前谢谢你帮我解决这个问题。
谨致问候,

lqfhib0f

lqfhib0f1#

下面应该给你介绍一下窍门。

UPDATE favorites 
INNER JOIN images ON favorites.image_id= images.id
SET favorites.archive = 1 
WHERE favorites.user_id = '1';
zdwk9cvp

zdwk9cvp2#

Update mysql的语法不同。你不能使用 From update语句中的子句。
就像:

Update (all the tables with join relationships if any) 
Set (field = value/expression) 
Where (all the conditions)

请尝试以下查询:

UPDATE
  favorites 
INNER JOIN
  images
ON
  favorites.image_id = images.id
SET
  favorites.archive = 1
WHERE
  favorites.user_id = '1'

完整语法为:

UPDATE [LOW_PRIORITY] [IGNORE] table_reference
    SET assignment_list
    [WHERE where_condition]
    [ORDER BY ...]
    [LIMIT row_count]

value:
    {expr | DEFAULT}

assignment:
    col_name = value

assignment_list:
    assignment [, assignment] ...

相关问题