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

Seleziona una colonna distinta insieme ad alcune altre colonne in MySQL

Utilizzando una sottoquery, puoi ottenere l'id più alto per ogni nome, quindi seleziona il resto delle righe in base a quello:

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

Se preferisci, usa MIN(id) per ottenere il primo record per ogni nome invece dell'ultimo.

Può anche essere fatto con un INNER JOIN contro la sottoquery. A tal fine, le prestazioni dovrebbero essere simili e, a volte, è necessario unirti a due colonne dalla sottoquery.

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