1. ホーム
  2. sqlite

[解決済み] SQLiteでテーブルを結合しながらUPDATEするには?

2023-02-22 04:58:45

質問

私は試してみました。

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ではシンタックスエラーが発生します。

このUPDATE/JOINをSQLiteバージョン3.5.9で動作させるにはどうしたらよいでしょうか?

どのように解決するのですか?

できません。SQLite はUPDATE文でのJOINをサポートしません。 .

しかし、おそらく代わりにサブクエリでこれを行うことができます。

UPDATE closure SET checked = 0 
WHERE item_id IN (SELECT id FROM item WHERE ancestor_id = 1);

またはそのようなもの。あなたのスキーマが何であるかは正確には不明です。