Tek bir sütunda DISTINCT, tek bir sütunda GROUP BY'a karşılık yukarıdaki tüm cevaplar doğrudur. Her db motorunun kendi uygulaması ve optimizasyonları vardır ve çok az farkla ilgileniyorsanız (çoğu durumda) o zaman belirli bir sunucuya ve belirli bir versiyona karşı test etmek zorundasınız! Uygulamalar değişebileceğinden ...
ANCAK, sorguda birden fazla sütun seçerseniz, DISTINCT aslında farklıdır! Çünkü bu durumda, tek bir sütun yerine tüm satırların TÜM sütunlarını karşılaştıracaktır.
Yani şöyle bir şey varsa:
// This will NOT return unique by [id], but unique by (id,name)
SELECT DISTINCT id, name FROM some_query_with_joins
// This will select unique by [id].
SELECT id, name FROM some_query_with_joins GROUP BY id
DISTINCT anahtar kelimesinin satırları belirttiğiniz ilk sütuna göre ayırdığını düşünmek yaygın bir hatadır, ancak DISTINCT bu şekilde genel bir anahtar kelimedir.
Bu yüzden, yukarıdaki yanıtları tüm durumlar için doğru olarak almamaya dikkat etmelisiniz ... İstediğiniz tek şey optimize etmek iken kafanız karışabilir ve yanlış sonuçlar elde edebilirsiniz!