sql >> Database >  >> RDS >> Mysql

MySQL-instructie om de laatste invoer van een specifieke kolom te selecteren

  • Verkrijg in een afgeleide tabel de maximale versiewaarde voor elk type_id
  • Ga terug naar de hoofdtabel om de bijbehorende rij te krijgen.

Probeer het volgende:

SELECT e.* 
FROM 
example1 AS e 
JOIN 
(
  SELECT type_id, 
         MAX(version) AS maximum_version
  FROM example1 
  WHERE class_id = 10
  GROUP BY type_id 
) AS dt ON dt.type_id = e.type_id AND 
           dt.maximum_version = e.version 
WHERE e.class_id = 10

Resultaat

| id  | version | text  | class_id | type_id |
| --- | ------- | ----- | -------- | ------- |
| 1   | 1       | text1 | 10       | 1       |
| 2   | 1       | text2 | 10       | 2       |
| 4   | 1       | test4 | 10       | 4       |
| 9   | 3       | last  | 10       | 3       |
| 11  | 3       | rrrr  | 10       | 5       |

Bekijken op DB Fiddle




  1. INNER JOIN vs LEFT JOIN prestaties in SQL Server

  2. MySQL retourneert maximale waarde of null als een kolom geen waarde heeft

  3. SELECTEER de ene kolom als de andere nul is

  4. scope_identity vs ident_current