sql >> Base de Datos >  >> RDS >> Mysql

Seleccione una columna distinta junto con algunas otras columnas en MySQL

Usando una subconsulta, puede obtener el id más alto para cada nombre, luego seleccione el resto de las filas según eso:

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

Si lo prefiere, use MIN(id) para obtener el primer registro de cada nombre en lugar del último.

También se puede hacer con un INNER JOIN contra la subconsulta. Para este propósito, el rendimiento debe ser similar y, a veces, debe unirse en dos columnas de la subconsulta.

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