mysql 如何查找两个表之间的重复行?

ecbunoof  于 2023-03-11  发布在  Mysql
关注(0)|答案(1)|浏览(134)

我有两个具有相同模式的表。一个主表包含所有数据,一个子表只包含几个条目。
我的目标是向主表发送一个更新,两个表中都存在的行。
伪代码:

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>);

这可能吗,尤其是在一个声明中?

jvlzgdj9

jvlzgdj91#

MySQL支持多表UPDATE语法(尽管这不是标准的,也不是所有的SQL实现都支持):

UPDATE main_table
JOIN sub_table USING (somefield1, somefield2, ...)
SET main_table.active = false;

通过执行内部联接,只有具有匹配项的行才会受到影响。

相关问题