DISTINCT在一个简单的SQL查询中

时间:2016-06-08 19:40:12

标签: sql distinct

执行SQL查询时,我一直试图弄清楚以下内容: 在这个例子中:

SELECT DISTINCT AL.id, AL.name
FROM albums AL

为什么需要指定不同的?我认为作为主键的Id足以避免重复的结果。

2 个答案:

答案 0 :(得分:1)

你是对的,在你的情况下,不需要单词distinct,因为你要求id和名字。现在,为了举例说明需要使用distinct,请假设您有多个具有相同名称的id。 Let It Be是甲壳虫乐队和替换者的专辑。并且让我们说你正在使用你的数据库来写出仅包含专辑名称的标签。您想要的查询是:

    select distinct al.name
    from albums al;

有时您的数据库并不完美,最终会出现一堆垃圾数据。如果未将id指定为唯一,则最终可能会出现重复记录,然后您可能希望避免在查询结果中看到重复项。

答案 1 :(得分:1)

指定distinct时,您指定希望整行不同。例如,如果您有两行:

  1. ID = 1且Name ='Joe Smith'
  2. ID = 2且Name ='Joe Smith'
  3. 然后您的查询将返回两行,因为不同的ID值会使行不同。

    但是,如果您只选择 ID列(并且它是您的主键),那么distinct就是毫无意义。

    如果您正在尝试查找所有唯一名称,那么您需要:

    SELECT DISTINCT AL.name
    FROM albums AL
    
相关问题