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
FROM
etWHERE
clauses - 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.