DISTINCT
filtra los valores duplicados de sus devueltos campos.
Una forma realmente simplificada de verlo es:
- Construye su conjunto de resultados general (incluidos los duplicados) en función de su
FROM
yWHERE
cláusulas - Ordena ese conjunto de resultados en función de los campos que desea devolver
- Elimina cualquier valor duplicado en esos campos
Es semánticamente equivalente a GROUP BY
donde todos los campos devueltos están en GROUP BY
cláusula.