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

Vælg særskilt kolonne sammen med nogle andre kolonner i MySQL

Ved at bruge en underforespørgsel kan du få det højeste id for hvert navn, vælg derefter resten af ​​rækkerne baseret på det:

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

Hvis du foretrækker det, skal du bruge MIN(id) for at få den første post for hvert navn i stedet for den sidste.

Det kan også gøres med en INNER JOIN mod underforespørgslen. Til dette formål bør ydelsen være ens, og nogle gange skal du deltage på to kolonner fra underforespørgslen.

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


  1. Sådan skjuler du SQL-databaser, som en bruger ikke har adgang til

  2. Hvorfor er låsning i bordniveau bedre end låsning på rækkeniveau til store borde?

  3. Forespørg på de sidste N relaterede rækker pr. række

  4. 'PDOException' Syntaksfejl eller adgangsovertrædelse:1064 Du har en fejl i din SQL-syntaks; kontrollere