在此处查看我的表和查询(在 sqlfiddle 上)
Myquery 正在获取我需要的确切结果,但是当数据超过 1000 行时需要很长时间。我需要让它高效Select `id`, `uid`, case when left_leg > right_leg then left_leg
else right_leg end as Max_leg,`date` from
(
SELECT * FROM network t2 where id in (select id from
(select id,uid,`date` from (SELECT * FROM network order by uid,
`date` desc) t4 group by uid) t3) and
(left_leg>=500 or right_leg>=500))t1
想要从网络中再次选择每个 uid 的最新日期的数据想要选择 left_leg >=500 或 right_leg >=500 的数据想要只选择两条腿中较大的一条(左腿或右腿)
整个查询可能有一些问题,但核心问题在于这段代码
SELECT * FROM network t2 where id in (select id from
(select id,uid,`date` from (SELECT * FROM network order by uid,
`date` desc) t4 group by uid) t3)
我想改进这个查询,因为当数据增长时它获取结果的速度非常慢。