Mysql
 sql >> Database >  >> RDS >> Mysql

MySQL:ignora una colonna selezionata quando usi DISTINCT

Ci sono due casi qui. Diciamo che hai i dati

A  B  C   (columns)
a  b  c1
a  b  c2

Prendendo valori distinti di A, B dà solo un risultato (a, b), con due valori per la colonna C. Quindi la domanda è se vuoi vedere tutti i valori di C o solo un valore per ogni valore distinto delle colonne A e B ?

Se vuoi vedere solo un valore di C, puoi scrivere

SELECT A, B, MAX(C) FROM YourTable
  GROUP BY A, B

D'altra parte, se vuoi vedere tutti i valori per C allora

SELECT DISTINCT A, B, C FROM YourTable WHERE ROW(A,B) IN 
  (SELECT A, B FROM YourTable
     GROUP BY A, B)

te lo dà. Quest'ultima alternativa è necessaria se nella tabella sono presenti altre colonne.