gpt4 book ai didi

mysql - 从mysql子查询中的更新表访问列

转载 作者:行者123 更新时间:2023-11-29 22:30:34 26 4
gpt4 key购买 nike

我有两个表,“位置”和“发生”。 occurrence 存储事件,带有creatorId 和时间戳。我正在尝试根据位置表计算出现时间戳 5 分钟内位置的所有时间戳的平均纬度,并将其放入出现纬度列中。

我尝试了以下操作,并在“where 子句”中得到了“未知列“occurrence.creatorId”。

update occurrence set latitude = (
select avg(latitude) from (
select * from location where (
location.creatorId=occurrence.creatorId
and location.timestamp<occurrence.timestamp+interval 5 minute
and location.timestamp>occurrence.timestamp-interval 5 minute
)
) as test
);

我怀疑我写的太像 Java 程序了。有人可以帮助我的大脑变得更加 MySQL 化吗?

谢谢!错误

最佳答案

试试这个:

update o
set latitude = (select avg(latitude)
from location
where location.creatorId=o.creatorId
and location.timestamp<o.timestamp+interval 5 minute
and location.timestamp>o.timestamp-interval 5 minute)
from occurrence o

您收到错误“未知列'occurrence.creatorId'”,因为最里面的子查询无法访问表的出现。因此,子查询对出现表中列的所有引用都是无效的。上面的查询应该可以正常工作。

关于mysql - 从mysql子查询中的更新表访问列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29839465/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com