DISTINCT n'est pas une fonction qui s'applique uniquement à certaines colonnes. C'est un modificateur de requête qui s'applique à toutes les colonnes de la liste de sélection.
Autrement dit, DISTINCT réduit les lignes uniquement si toutes les colonnes sont identiques aux colonnes d'une autre ligne.
DISTINCT doit suivre immédiatement après SELECT (avec d'autres modificateurs de requête, comme SQL_CALC_FOUND_ROWS). Ensuite, en suivant les modificateurs de requête, vous pouvez lister les colonnes.
-
À DROITE :
SELECT DISTINCT foo, ticket_id FROM table...
Générez une ligne pour chaque paire distincte de valeurs sur ticket_id et toc.
-
FAUX :
SELECT foo, DISTINCT ticket_id FROM table...
S'il y a trois valeurs distinctes de ticket_id, cela ne renverrait-il que trois lignes ? Et s'il y avait six valeurs distinctes de foo ? Parmi les six valeurs possibles de foo, quelles sont les trois valeurs à afficher ?
C'est ambigu tel qu'il est écrit.