MYSQL-更新/内部联接

时间:2018-10-23 07:56:14

标签: mysql

我正在尝试在UPDATE中使用INNER JOIN来声明(MY)SQL。我已经举了例子,并编辑了表名和表列以进行挖掘。但是我的MYSQL仍然不断给我一个错误(#1064)。

错误

  

您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册以获取正确的语法,以在第5行的“ FROM收藏夹中将图像连接到收藏夹上使用。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'

提前感谢您帮助我解决这一问题。

亲切的问候,

2 个答案:

答案 0 :(得分:0)

Update的语法在MySQL中有所不同。您不能在Update语句中使用From子句。

它就像:

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'

完整syntax是:

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] ...

答案 1 :(得分:0)

以下内容将助您一臂之力。

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