我尝试使用来自gras gis的内部连接进行查询(但在该社区中,这个问题被认为是题外话,所以它似乎只涉及SQL lite):
db.execute sql="UPDATE A SET A.next2=B.next_stream
FROM stream_order2 AS A
INNER JOIN stream_order2 AS B ON A.factor=B.stream"
我必须这样做,因为我想将 next2 的值设置为表中对应于等于因子值的流编号的下一个流的值。db.execute 抛出错误。
然后我更新了命令并删除了 A. 语句。现在错误是:
Error in sqlite3_prepare():
near "FROM": syntax error
我尝试在ON后删除A.,但这没有帮助,我不认为这是问题所在。
从 SQLite 版本 3.33.0 (2020-08-14) 开始支持UPDATE FROM 。
您可以通过使用相关子查询并拥有合适的索引来解决这个问题,
请参阅此处的示例