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

Wählen Sie eine bestimmte Spalte zusammen mit einigen anderen Spalten in MySQL aus

Mit einer Unterabfrage erhalten Sie die höchste id für jeden Namen und wählen Sie dann die restlichen Zeilen basierend darauf aus:

SELECT * FROM table
WHERE id IN (
  SELECT MAX(id) FROM table GROUP BY name
)

Wenn Sie möchten, verwenden Sie MIN(id) um den ersten Datensatz für jeden Namen anstelle des letzten zu erhalten.

Dies kann auch mit einem INNER JOIN erfolgen gegen die Unterabfrage. Zu diesem Zweck sollte die Leistung ähnlich sein, und manchmal müssen Sie zwei mitmachen Spalten aus der Unterabfrage.

SELECT
  table.*
FROM 
  table
  INNER JOIN (
    SELECT MAX(id) AS id FROM table GROUP BY name
  ) maxid ON table.id = maxid.id