我试图使用SQL语句删除重复记录。我正在使用MS Access 2010.这是我的声明:

时间:2018-01-16 16:17:45

标签: sql ms-access-2010 delete-row

我正在尝试使用SQL语句删除重复记录。我正在使用MS Access 2010.这是我的发言:

DELETE * FROM table1 where not exists  (SELECT min(col1) FROM table1 GROUP BY col2, col3 );

即使嵌套的Select语句返回table1记录的子集,当我执行delete语句时,它也会删除no(0)记录。

1 个答案:

答案 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}对都是唯一的,第一个版本就会有效}))。