问个数据库查询的有关问题

问个数据库查询的有关问题

问个数据库查询的问题

例如表结构如下:

key       time     value

1             100         5

1             101         7

1             102         9

2             100         6

2             101         10

key为关键字

现在要查询时间值最大的各个关键字所对应的记录

例如上面对于关键字1,时间值最大为102,对于关键字2,时间值最大为101,那么查询结果应为:

1       102       9

2       101       10

请问查询语句该怎么写?

create table b1 (`key` int not null,`time` int not null,`value` int not null) engine=myisam default charset=utf8;

insert into b1 values

(1, 100, 5),

(1, 101, 7),

(1, 102, 9),

(2, 100, 6),

(2, 101, 10);

select * from (select * from b1 order by `time` desc ) T group by `key`;

drop table b1;

=========

query result(2 records)

key time value

1 102 9

2 101 10



戏法人人会变,各有巧妙不同:

SELECT t1 . *

FROM b1 t1, (

SELECT `key` , max( `time` ) AS maxtime

FROM b1

GROUP BY `key`

)t2

WHERE t1.`key` = t2.`key`

AND t1.time = t2.maxtime

问个数据库查询的有关问题

相关文章:

你感兴趣的文章:

标签云: