我有两个具有相同模式的表。一个主表包含所有数据,一个子表只包含几个条目。我的目标是向主表发送一个更新,仅两个表中都存在的行。伪代码:
SELECT id FROM main_table WHERE main_table.somefields = sub_table.somefields; UPDATE main_table set active = false WHERE id IN (<ids from query above>);
这可能吗,尤其是在一个声明中?
jvlzgdj91#
MySQL支持多表UPDATE语法(尽管这不是标准的,也不是所有的SQL实现都支持):
UPDATE main_table JOIN sub_table USING (somefield1, somefield2, ...) SET main_table.active = false;
通过执行内部联接,只有具有匹配项的行才会受到影响。
1条答案
按热度按时间jvlzgdj91#
MySQL支持多表UPDATE语法(尽管这不是标准的,也不是所有的SQL实现都支持):
通过执行内部联接,只有具有匹配项的行才会受到影响。