请问如何在SQLite上连接表时进行更新?

如何在SQLite上连接表时进行更新?

我试过:

UPDATE closure JOIN item ON ( item_id = id ) SET checked = 0 WHERE ancestor_id = 1

以及:

UPDATE closure, item 
SET checked = 0 WHERE ancestor_id = 1 AND item_id = id

这两种方法都适用于MySQL,但这给我带来了SQLite中的语法错误。

如何使此更新/连接与SQLite版本3.5.9一起工作?


阿晨1998
浏览 388回答 3
3回答

喵喵时光机

不行,SQLite不支持UPDATE语句中的联接.但是,您可能可以使用子查询来实现这一点:UPDATE closure SET checked = 0  WHERE item_id IN (SELECT id FROM item WHERE ancestor_id = 1);或者类似的东西;还不清楚您的模式到底是什么。

慕莱坞森

您也可以使用取代然后,可以将选择与联接一起使用。就像这样:REPLACE INTO clusure   SELECT sel.col1,sel.col2,....,sel.checked --checked should correspond to column that you want to changeFROM (  SELECT *,0 as checked FROM closure LEFT JOIN item ON (item_id = id)   WHERE ancestor_id = 1) sel
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

MySQL