我有两个表名激活和post_media现在我想根据后媒体表记录更新活动表中的媒体背景颜色但是当我运行查询时它给我错误 .
Query
UPDATE A
SET A.bg_color = M.bg_color
FROM activities A
INNER JOIN post_media M ON A.relation_id = M.user_post_id AND A.media=M.file
WHERE A.relation_id>0
Error
#1064 - 您的SQL语法出错;查看与您的MySQL服务器版本对应的手册,以便在第3行的“FROM活动A INNER JOIN post_media M ON A.relation_id = M.user_post_”附近使用正确的语法
2 回答
UPDATE
语法与SELECT
不同 .UPDATE
语句中没有FROM
子句用法 .一般流程是:
UPDATE <table name> [JOIN <other tables>] SET ...
请查看此处的文档以获取完整语法和进一步理解:https://dev.mysql.com/doc/refman/8.0/en/update.html
使用join更新查询与SELECT查询不同 . 在这里,您需要在SET子句之前添加表,并在WHERE子句中添加所有条件,如SELECT .
例如/ UPDATE t1,t2 SET t1.field = t2.field WHERE条件1和条件2
所以你的查询将如下所示:
试试这个 .