sql >> Base de Datos >  >> RDS >> Mysql

Mysql seleccionar distinto

DISTINCT no es una función que se aplica solo a algunas columnas. Es un modificador de consulta que se aplica a todas las columnas de la lista de selección.

Es decir, DISTINCT reduce las filas solo si all las columnas son idénticas a las columnas de otra fila.

DISTINCT debe seguir inmediatamente después de SELECT (junto con otros modificadores de consulta, como SQL_CALC_FOUND_ROWS). Luego, siguiendo los modificadores de consulta, puede enumerar las columnas.

  • DERECHA: SELECT DISTINCT foo, ticket_id FROM table...

    Genere una fila para cada emparejamiento distinto de valores a través de ticket_id y Foo.

  • INCORRECTO: SELECT foo, DISTINCT ticket_id FROM table...

    Si hay tres valores distintos de ticket_id, ¿devolvería esto solo tres filas? ¿Qué pasa si hay seis valores distintos de foo? ¿Qué tres valores de los seis valores posibles de foo deben generarse?
    Es ambiguo tal como está escrito.