在mysql表列中选择非重复记录

gjmwrych  于 2021-06-17  发布在  Mysql
关注(0)|答案(1)|浏览(255)

我有一张只有两列的大table。一个是主id列,另一个是数据列。
我只需要选择表中不重复的记录。我尝试了下面的查询,但它需要很多时间,不确定它是否真的工作。

select * from (select column_name 
               from table_name 
               group by column_name 
               having count(*) = 1) x;

你怎么认为?
如果它能更快地完成任务,我也愿意尝试其他方法。

nc1teljy

nc1teljy1#

您可以左键联接同一个表或使用子查询检查重复项。这对于sql server应该更容易,因为它不会计算所有重复项。像这样:

SELECT
    t1.column_name 
FROM
    table_name AS t1
WHERE
    NOT EXISTS (
        SELECT
            *
        FROM
            table_name AS t2
        WHERE
                t2.column_name = t1.column_name
            AND t2.id != t1.id
    )

SELECT
    t1.column_name 
FROM
    table_name AS t1
    LEFT JOIN table_name t2 ON (
        t2.column_name = t1.column_name
        t2.id != t1.id
    )
WHERE
    t2.column.name IS NULL

相关问题