DISTINCT не е функция, която се прилага само за някои колони. Това е модификатор на заявка, който се прилага за всички колони в списъка за избор.
Тоест, DISTINCT намалява редовете само ако всички колоните са идентични с колоните на друг ред.
DISTINCT трябва да следва непосредствено след SELECT (заедно с други модификатори на заявка, като SQL_CALC_FOUND_ROWS). След това, следвайки модификаторите на заявката, можете да изброите колони.
-
НАДЯСНО:
SELECT DISTINCT foo, ticket_id FROM table...
Изведете ред за всяко отделно сдвояване на стойности в ticket_id и фу.
-
ГРЕШНО:
SELECT foo, DISTINCT ticket_id FROM table...
Ако има три различни стойности на ticket_id, това ще върне ли само три реда? Ами ако има шест различни стойности на foo? Кои три стойности от шестте възможни стойности на foo трябва да бъдат изведени?
Това е двусмислено, както е написано.