Potřebujete buď klauzuli GROUP BY, nebo složitější dotaz.
SELECT field1, MAX(updated_date)
FROM mytable
GROUP BY field1
U ukázkových dat to vrátí 3 řádky.
Spíš chcete:
SELECT t1.field1, t3.max_date
FROM mytable AS t1
JOIN (SELECT MAX(t2.updated_date) AS max_date
FROM mytable AS t2
) AS t3
ON t1.updated_date = t3.max_date;
U ukázkových dat to vrátí 1 řádek:
ta3 2012-03-11 11:05:56
Z hlavních DBMS vám pouze MySQL umožňuje vynechat klauzuli GROUP BY, pokud máte ve výběrovém seznamu směs agregovaných a neagregovaných sloupců. Standard SQL vyžaduje klauzuli GROUP BY a musíte v ní uvést všechny neagregované sloupce. Někdy v MySQL vynechání klauzule GROUP BY vytvoří požadovanou odpověď; i když často ne, dokáže dát neočekávanou odpověď.