我有两个表名为activties和post\u media现在我想根据post media表记录更新activities表中的媒体背景色,但运行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
错误
我有两个表名为activties和post\u media现在我想根据post media表记录更新activities表中的媒体背景色,但运行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
错误
2条答案
按热度按时间r1zk6ea11#
使用联接更新查询与选择查询不同。在这里,您需要在set子句和where子句(如select)中的所有条件之前添加表。
e、 g/更新t1,t2设置t1.field=t2.field,其中条件1和条件2
因此,您的查询如下所示:
试试这个。
cngwdvgl2#
UPDATE
语法不同于SELECT
. 根本没有FROM
中的子句用法UPDATE
声明。一般流程为:
UPDATE <table name> [JOIN <other tables>] SET ...
```UPDATE activities A
INNER JOIN post_media M ON A.relation_id = M.user_post_id AND A.media=M.file
SET A.bg_color = M.bg_color
WHERE A.relation_id>0