我正在尝试使用SQL语句删除重复记录。我正在使用MS Access 2010.这是我的发言:
DELETE * FROM table1 where not exists (SELECT min(col1) FROM table1 GROUP BY col2, col3 );
即使嵌套的Select语句返回table1记录的子集,当我执行delete语句时,它也会删除no(0)记录。
答案 0 :(得分:1)
您需要一个关联条款。我不确定数据是什么样的,但这应该有效:
DELETE *
FROM table1
WHERE col1 <> (SELECT MIN(t1.col1)
FROM table1 as t1
WHERE t1.col2 = table1.col2 AND t1.col3 = table1.col3
);
我怀疑你正在努力:
DELETE *
FROM table1
WHERE col1 NOT IN (SELECT MIN(col1) FROM table1 GROUP BY col2, col3);
这也是有用的,假设col1
在所有行中都是唯一的(只要col1
col2
对任何col3
/ {{1}对都是唯一的,第一个版本就会有效}))。