SQL删除多个条件重复记录

时间:2018-04-25 20:36:50

标签: sql ms-access-2013

我有一个表,除了一个字段外都有重复记录(例如col4)。我只需要删除t1.col4字段为空的重复条目。

ID  Col1   Col2   Col3   Col4
1   Joe     1      2      Yes
2   Sue     1      2      
3   Joe     2      3      
4   Joe     1      2      

目标:仅删除ID 4

我已尝试过内连接(我认为msaccess不允许这样做)和WHERE EXISTS / IN技术有错误。

Exists技术删除t1.col4为null的所有记录(不仅仅是子查询中匹配的记录):

DELETE t1.*
  FROM t1
  WHERE Exists (
    SELECT t1.col1, t1.col2, t1.col3
      FROM t1
      Group by t1.col1, t1.col2, t1.col3
      HAVING Count(*) > 1
    )
    AND t1.col4 Is Null;

我已经尝试了内部连接技术的多次迭代,但我在这里阅读的所有内容都表明它在Access中不受支持。如果它有帮助,很高兴发布我尝试过的内容。我也尝试将子查询写入temptable,然后尝试删除内连接匹配的记录。

1 个答案:

答案 0 :(得分:1)

您需要一个相关的子查询:

@account = match.position&.account
# or
@account = match.position.try(:account)