一尘不染

如何在SQLite中使用LEFT JOIN选择候选行进行更新

sql

我有一个assoc包含列的表

local_id, remote_id, cachedData

我可以成功运行如下所示的SQLITE查询

SELECT a1.local_id, a1.remote_id FROM assoc a1 LEFT JOIN ....

这样我就可以确定assoc表格中符合我条件的某些行。

我想要做的是设置cachedDatanull这些行。

我怎样才能做到这一点?Sqlite不支持带联接的UPDATE;它不支持UPDATE。您可以发出子查询,但我不知道如何正确使用语法;对我来说似乎不是直觉。


阅读 193

收藏
2021-03-17

共1个答案

一尘不染

 UPDATE assoc SET cachedData = NULL
    WHERE EXISTS (SELECT * FROM otherTable 
        WHERE otherTable.Col1 = assoc.Col1 AND otherTable.Col2 = assoc.Col1)

请注意,这并不是特别有效。

2021-03-17