Mysql 使用来自两个 table 的条件从一个 table 中删除

Mysql to delete from one table using condition from two tables

我正在使用此 code/query 删除使用来自 'bogus' table 的列表的虚假用户 并且显然此查询不正确并显示错误:Unknown column 'bogus.user' in 'where clause' 考虑到 tables sample 和 bogus 每个只有一列,我只想从 sample table delete 行保留 table bogus.

的数据

delete from sample where sample.user=bogus.user;

你需要加入这个

delete s from sample s
join bogus b on b.user = s.user

怎么样:

 delete from sample where sample.user in (SELECT user FROM bogus);

我认为这是最省事的方法。在没有连接或嵌套 select 的情况下将两个表放在一个语句中可能是可能的。但是如果你做错了,你就有删除两个表内容的风险。所以我想说最好这样做。

delete from sample where user in (select user from bogus)