sqlite 内部连接更新 - 3 个表

sqlite inner join update - 3 tables

我在 SQLite 上有 3 个表,我想根据表 3 中的值更新表 1。

在 MySQL:

UPDATE table1 t1 
JOIN table2 t2 ON t2.id = t1.id_t2 
JOIN table3 t3 ON t2.id_t3 = t3.id 
SET t1.name = 0 WHERE t3.name = 0;

我知道,SQLite 不支持 UPDATE-JOIN,但我不知道,没有 JOIN 有什么好的解决方案?

您需要在不使用 table 的情况下找到要更新的行的 ID,更新将是 运行。您只能从两个 table 'table2' 和 'table3' 中找到这些 ID。简单的子查询将帮助你:

UPDATE table1 SET name = 0 
WHERE id_t2 IN (
    SELECT t2.id FROM table2 t2 
    INNER JOIN table3 t3 ON t2.id_t3 = t3.id 
    WHERE t3.name = 0
)
UPDATE t1 SET name = 0 
WHERE t1.id_t2 IN (SELECT t2.id FROM t2 
WHERE t2.id_t3 IN (SELECT t3.id FROM t3 WHERE t3.name = 0));