MYSQL - 更新/内部连接 [重复]
Posted
技术标签:
【中文标题】MYSQL - 更新/内部连接 [重复]【英文标题】:MYSQL - UPDATE/INNER JOIN [duplicate] 【发布时间】:2019-03-27 09:18:13 【问题描述】:我正在尝试在(MY)SQL
中使用INNER JOIN
进行UPDATE
声明。我已经举了一些例子并编辑了我的表名和表列。但是我的 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'
在此先感谢您帮助我解决这个问题。
亲切的问候,
【问题讨论】:
请看其他问题,或查看the docs 【参考方案1】: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] ...
【讨论】:
【参考方案2】:以下应该对你有用。
UPDATE favorites
INNER JOIN images ON favorites.image_id= images.id
SET favorites.archive = 1
WHERE favorites.user_id = '1';
【讨论】:
以上是关于MYSQL - 更新/内部连接 [重复]的主要内容,如果未能解决你的问题,请参考以下文章