sql >> Databáze >  >> RDS >> Mysql

Příkaz MySQL pro výběr nejnovější položky konkrétního sloupce

  • V odvozené tabulce získejte maximální hodnotu verze pro každý typ_id
  • Připojte se zpět k hlavní tabulce a získejte odpovídající řádek.

Zkuste následující:

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

Výsledek

| 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       |

Zobrazit na DB Fiddle




  1. Upozornění vyvolané vložením 4bajtového unicode do mysql

  2. Jak dosáhnout výchozí hodnoty, pokud je hodnota sloupce NULL?

  3. MySQL Vyberte pouze jeden řádek od každého pacienta diagnostikovaného podle prvního data

  4. Funkce JSON_TABLE() v Oracle