Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Selecione uma coluna distinta junto com algumas outras colunas no MySQL


Usando uma subconsulta, você pode obter o id mais alto para cada nome e selecione o restante das linhas com base nisso:
SELECT * FROM table
WHERE id IN (
  SELECT MAX(id) FROM table GROUP BY name
)

Se preferir, use MIN(id) para obter o primeiro registro de cada nome em vez do último.

Também pode ser feito com um INNER JOIN contra a subconsulta. Para isso, o desempenho deve ser semelhante e, às vezes, você precisa participar de dois colunas da subconsulta.
SELECT
  table.*
FROM 
  table
  INNER JOIN (
    SELECT MAX(id) AS id FROM table GROUP BY name
  ) maxid ON table.id = maxid.id