當執行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