我在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有什么好的解决方案?
答案 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));