Mysql 多个最大结果
表结构Mysql 多个最大结果,mysql,sql,Mysql,Sql,表结构 id (p) | date | id2 (fk) | id3 (fk) 其中(p)是主id,(fk)是外键 此查询返回最新唯一行的列表 select max(date) as date1, id1, id2 from `table` group by id1, id2 我还想连续第二次约会,这必须是第二个最高的日期 差不多 select max(date) as date1, max_second(date) as date2, id1
id (p) | date | id2 (fk) | id3 (fk)
其中(p)是主id,(fk)是外键
此查询返回最新唯一行的列表
select
max(date) as date1,
id1,
id2
from `table`
group by id1, id2
我还想连续第二次约会,这必须是第二个最高的日期
差不多
select
max(date) as date1,
max_second(date) as date2,
id1,
id2
from `table`
group by id1, id2
将表连接到自身,匹配id列,但(这是关键)匹配被连接表的行的日期小于主表的行
select
max(t1.date) as date1,
max(t2.date) as date2,
t1.id2,
t1.id2
from `table` t1
left join `table` t2 on t2.id1 = t1.id1 and t2.id2 = t1.id2 and t2.date < t1.date
group by id1, id2;
如果速度不够快,请在运行以下命令后尝试速度:
create index table_id1_id2_date on `table`(id1, id2, date);
行得通,谢谢。虽然完成这个查询几乎要花上一辈子的时间……但现在它就像火箭一样)再次感谢
create index table_id1_id2_date on `table`(id1, id2, date);