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)
我正在使用此 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)