¿Cómo hago una ACTUALIZACIÓN al unir tablas en SQLite?

Lo intenté :

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

Y:

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

Ambos funcionan con MySQL, pero esos me dan un error de syntax en SQLite.

¿Cómo puedo hacer que UPDATE / JOIN funcione con SQLite versión 3.5.9?

No puedes. SQLite no admite JOIN en las instrucciones UPDATE .

Pero, probablemente puedas hacer esto con una subconsulta en su lugar:

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

O algo así; no está claro exactamente cuál es tu esquema.

También puede usar REEMPLAZAR, luego puede usar la selección con combinaciones. Me gusta esto:

 REPLACE INTO clusure SELECT sel.col1,sel.col2,....,sel.checked --checked should correspond to column that you want to change FROM ( SELECT *,0 as checked FROM closure LEFT JOIN item ON (item_id = id) WHERE ancestor_id = 1) sel