sqlite内连接更新 - 3个表

时间:2015-01-29 14:14:45

标签: sqlite join updates multiple-tables

我在SQLite上有3个表,喜欢根据table3中的值更新table1。

关于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有什么好的解决方案?

2 个答案:

答案 0 :(得分:1)

您需要查找要更新的行的ID,而不使用将在其上运行更新的表。你可以从两个表'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
)

答案 1 :(得分: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));