在一个列中查询数据库或数据表中的重复记录

3
在MS Access中,如何获取“myData”列上具有重复内容的记录的“ID”?类似以下代码:
----------------------             ------------------------         
  ID   |   myData    |             |   ID   |   myData    |   
----------------------             ------------------------
   1   |   AAA       |             |    1   |   AAA       |
----------------------             ------------------------
   2   |   BBB       |             |    5   |   AAA       |
----------------------    ==>      ------------------------
   3   |   CCC       |             |    2   |   BBB       |
----------------------             ------------------------
   4   |   BBB       |             |    4   |   BBB       |
----------------------             ------------------------
   5   |   AAA       |
----------------------             

到目前为止,我能做的只是这个查询:

SELECT        myData, COUNT(myData) AS Expr1
FROM            fooDB
GROUP BY myData
HAVING        (COUNT(myData) > 1)

只返回“mydata”中重复记录的列表和出现次数,添加其他任何内容都将在执行时失败。(不包括ID)

或者

如果我在C#中以DataTable的形式访问数据库,如何管理这个问题?特别是当这个表有大约2000条记录时。

(也许可以提供一些关于如何使用INTERSECT来返回具有一个列上重复项的完整行的帮助)

谢谢。

4个回答

2
SELECT ID, fooDB.myData
FROM (
  SELECT myData
  FROM fooDB
  GROUP BY myData
  HAVING COUNT(myData) > 1
) t INNER JOIN fooDB ON (t.myData = fooDB.myData)

1

我不知道在Access中是否可以像这样进行子查询,但以下是一种典型的SQL方法:

SELECT
    id,
    my_data
FROM
    My_Table
WHERE
    my_data IN
    (
        SELECT
            my_data
        FROM
            My_Table
        GROUP BY
            my_data
        HAVING
            COUNT(*) > 1
    )

1

只是随便提一下...

SELECT distinct
    f.ID,
    f.myData
FROM 
    fooDB f
    inner join fooDB f2 on f.myData = f2.myData
        and f.ID <> f2.ID

0

尝试

SELECT ID
  FROM fooDB
  WHERE myData IN (SELECT myData
                     FROM (SELECT myData, COUNT(myData) AS ROW_COUNT
                             FROM fooDB
                             GROUP BY myData)
                     WHERE ROW_COUNT > 1)

分享并享受。


非常感谢,但是您在第一个SELECT语句中漏掉了"myData",我已经修复了它,现在可以正常工作了。 - Hassen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接