查找非唯一行的查询在 Access 中无法正常工作

Query for finding not unique rows doesn't work properly in Access

使用下面的代码,我试图获取不唯一的行,即具有同一对 columnNameTableName 的行。 Table columns_old 有大约 22,000 个值,在 returns 2000 以下查询。我想得到这样的行,因为通过尝试插入这个 select 我得到没有唯一值的错误行.这样我想得到这样有问题的行:

SELECT  ColumnName,tablename                
                FROM columns_old

group by ColumnName, tablename
having count(*)> 1;

结果已按表名排序,我得到这样的行:

ColName       TableName

coa_end_dt      coa
coa_name        coa
coa_num         coa
coa_src_id      coa
coa_start_dt    coa
coa_template_id coa_tmplt
deleted_flag    geog_area
........         ......

但我认为结果是这样的:

ColName       TableName

coa_end_dt      coa
coa_end_dt      coa
coa_name        coa
coa_name        coa
coa_name        coa
coa_num         coa
....

这是怎么回事?就是想不通

根据对您问题的修改,您似乎不想只看到 ColumnNametablename[= 的哪些组合17=] 出现在不止一行中。您想查看包含它们的实际行。

在这种情况下,将您的原始查询连接回源 table 以仅检索匹配的行:

SELECT co.ColumnName, co.tablename
FROM
    columns_old AS co
    INNER JOIN
    (
        SELECT ColumnName, tablename
        FROM columns_old
        GROUP BY ColumnName, tablename
        HAVING count(*)> 1
    ) AS sub
    ON co.ColumnName = sub.ColumnName AND co.tablename = sub.tablename;