Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL:Bei Verwendung von DISTINCT eine ausgewählte Spalte ignorieren

Hier gibt es zwei Fälle. Angenommen, Sie haben die Daten

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

Wenn Sie unterschiedliche Werte von A, B verwenden, erhalten Sie nur ein Ergebnis (a, b) mit zwei Werten für Spalte C. Die Frage ist also, ob Sie alle Werte von C oder nur einen Wert für jeden unterschiedlichen Wert der Spalten A und B sehen möchten ?

Wenn Sie nur einen Wert von C sehen möchten, können Sie

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

Wenn Sie andererseits alle Werte für C sehen möchten, dann

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

gibt dir das. Diese letzte Alternative wird benötigt, wenn es andere Spalten in der Tabelle gibt.