当执行SQL查询,我一直在试图找出如下: 在这个例子中:DISTINCT一个简单的SQL查询
SELECT DISTINCT AL.id, AL.name
FROM albums AL
为什么有需要指定不同?我认为Id
是主键足以避免重复的结果。
当执行SQL查询,我一直在试图找出如下: 在这个例子中:DISTINCT一个简单的SQL查询
SELECT DISTINCT AL.id, AL.name
FROM albums AL
为什么有需要指定不同?我认为Id
是主键足以避免重复的结果。
当您指定distinct
时,您指定希望整行不同。例如,如果你有两行:
那么你的查询将返回两行,因为不同的ID值使行不同。
但是,如果您选择只有 ID列(并且它是您的主键),则区别是毫无意义的。
如果你想找到的所有独特的名字,那么你会想:
SELECT DISTINCT AL.name
FROM albums AL
你是对的,在你的情况下,应该不需要不同的词,因为你要求的是id和名字。现在,为了清楚的例子,有必要使用不同的名称,比如说你有多个具有相同名称的id。 Let It Be是披头士乐队和替换乐队的专辑。假设您使用数据库来写出只包含相册名称的标签。你会想要的查询将是:
select distinct al.name
from albums al;
有时你的数据库是不完美的,它结束了一堆垃圾数据。如果该ID没有被指定为唯一,那么最终可能会出现重复记录,然后您可能希望避免在查询结果中看到重复项。
如果'ID'是一个主键,那么'DISTINCT'是没有意义的。 – Siyual
1.我没有降低你的问题。 2.如果一个列在'SELECT'集合中自然是唯一的,那么提供'DISTINCT'不会改变结果。 – Siyual