我有两个表(日历和朋友)具有相同的id字段。在这种情况下为dateid。在日历表中,ID与实际日期相关,例如'02 -02-2019'.Friends表中有几次我遇到某个朋友的dateid及其ID。我想更新一天中遇到的时间,但似乎无法只更新他,有一天我要更新所有日期的所有朋友。到目前为止,我尝试过的查询如下:< / p>
Update Friends Set timesmet=timesmet+1
From Friends as t1 inner join calendar as t2
on t1.dateid=t2.dateid
where t2.dateofday='02-02-2019' and t1.friendid=1
其中dateofday是“ 02-02-2019”的日期。我似乎更新了所有朋友和所有日期。有人可以建议一种正确执行此操作的方法吗?还是我必须存储要通过从日历中首先调用一个select来更新的dateid?
我也尝试过:
UPDATE Friends
INNER JOIN calendar
ON Friends.dateid = calendar.dateid
SET Friends.timesmet = timesmet+1
WHERE Friends.friendid=1 and calendar.dateofday='02-02-2019'.
我使用的是postgres,这最后一个告诉我,内部联接中存在语法错误,这可能是因为update doe并没有这种语法,但是我在此平台上的几篇文章中都在线建议了所有这些信息>
答案 0 :(得分:1)
在Postgres中,语法为:
update Friends f
Set timesmet = timesmet + 1
from calendar c
where f.dateid = c.dateid and
c.dateofday = '02-02-2019' and
f.friendid = 1;