首页 > 解决方案 > MYSQL - 更新/内部连接

问题描述

我正在尝试用inUPDATE发表声明。我已经举了一些例子并编辑了我的表名和表列。但是我的 MYSQL 仍然不断给我一个错误(#1064)。INNER JOIN(MY)SQL

错误

您的 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'

在此先感谢您帮助我解决这个问题。

亲切的问候,

标签: mysql

解决方案


UpdateMySQL 中的语法不同。您不能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] ...

推荐阅读