GROUPBY句またはより複雑なクエリが必要です。
SELECT field1, MAX(updated_date)
FROM mytable
GROUP BY field1
サンプルデータの場合、これは3行を返します。
より可能性が高いのは、次のことです。
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;
サンプルデータの場合、これは1行を返します:
ta3 2012-03-11 11:05:56
主要なDBMSのうち、選択リストに集計列と非集計列が混在している場合、MySQLのみがGROUPBY句を省略できます。 SQL標準ではGROUPBY句が必要であり、その中にすべての非集計列をリストする必要があります。 MySQLでは、GROUP BY句を省略すると、必要な答えが得られる場合があります。しかし、多くの場合、予期しない答えを出すことができます。