执行SQL查询时,我一直试图弄清楚以下内容: 在这个例子中:
SELECT DISTINCT AL.id, AL.name
FROM albums AL
为什么需要指定不同的?我认为作为主键的Id
足以避免重复的结果。
答案 0 :(得分:1)
你是对的,在你的情况下,不需要单词distinct,因为你要求id和名字。现在,为了举例说明需要使用distinct,请假设您有多个具有相同名称的id。 Let It Be是甲壳虫乐队和替换者的专辑。并且让我们说你正在使用你的数据库来写出仅包含专辑名称的标签。您想要的查询是:
select distinct al.name
from albums al;
有时您的数据库并不完美,最终会出现一堆垃圾数据。如果未将id指定为唯一,则最终可能会出现重复记录,然后您可能希望避免在查询结果中看到重复项。
答案 1 :(得分:1)
指定distinct
时,您指定希望整行不同。例如,如果您有两行:
然后您的查询将返回两行,因为不同的ID值会使行不同。
但是,如果您只选择 ID列(并且它是您的主键),那么distinct就是毫无意义。
如果您正在尝试查找所有唯一名称,那么您需要:
SELECT DISTINCT AL.name
FROM albums AL