DISTINCT filtre les valeurs en double de votre renvoyé champs.
Une façon vraiment simplifiée de le voir est :
- Il construit votre ensemble de résultats global (y compris les doublons) en fonction de votre
FROMetWHEREclauses - Il trie cet ensemble de résultats en fonction des champs que vous souhaitez renvoyer
- Il supprime toutes les valeurs en double dans ces champs
C'est sémantiquement équivalent à un GROUP BY où tous les champs retournés sont dans le GROUP BY clause.