私はテーブルを持っています:
ID | time
1 | 124124244
2 | 211313112
3 | 131334334
の行を取得したいmax(time)
。
私はこのように試しました:
select ID,max(time) from T;
正しいmax(time)を与えましたが、与えられたIDは常に1でした。その行全体を取得できません。
どうすればいいですか?
同じ行が2つないtime
場合、または1つが必要で他の行を気にしない場合は、次のように使用できます。
SELECT id, time
FROM T
ORDER BY time DESC
LIMIT 1 ;
同じ行が複数ある場合time
、@Raphaelの回答はそれらすべてを返します。
select t.ID, t.time from T
inner join (select MAX(time) maxTime FROM T) a
ON a.maxTime = t.time;
SqlFiddle、xdazzの回答も(両方とも機能しています)
SELECT * FROM T WHERE `time` = (SELECT MAX(`time`) FROM T)
select id from tbl where time =
(select max(time) from tbl)
このフィドルをチェックして ください http://sqlfiddle.com/#!2/77acd/3