使用一个数据和查询更新多个表

时间:2015-07-24 19:58:05

标签: mysql sql join sql-update sql-delete

我正在尝试使用提供thread_idthreadfrn_id的一个查询来更新多个表的行。
但似乎threadfrn_id = 460表中files的行不存在,则即使对于threads表,也不会发生更新。 任何人都有这个解决方案吗?

的MySQL

UPDATE threads,files SET threads.del = 1,  files.del = 1 
WHERE threads.thread_id=460  AND files.threadfrn_id=460

PS 我要做的是,Update del列,以便稍后可以从表中删除del = 1行。

2 个答案:

答案 0 :(得分:0)

尝试以下查询:

UPDATE T
SET T.del = 1,  OT.del = 1 
FROM threads T
INNER JOIN  files OT
ON T.thread_id = OT.threadfrn_id
and T.thread_id = 460 and OT.threadfrn_id = 460

答案 1 :(得分:0)

join子句中加入WHERE

UPDATE threads,files SET threads.del = 1,  files.del = 1 
WHERE --include join condition for the tables
and threads.thread_id=460  AND files.threadfrn_id=460

或者您可以在2个语句中完成

UPDATE threads SET del = 1 where thread_id=460;
UPDATE files SET del = 1 where threadfrn_id=460;