现有用户订单表
用户表user
id name
1 小明
2 小红
订单表order
id user time
1 1 1516758140
2 1 1516757140
3 1 1516756140
4 2 1516759140
5 2 1516758140
6 2 1516757140
如何查出小红跟小明时间戳最大的订单(最新的订单)在一个数组里
现有用户订单表
用户表user
id name
1 小明
2 小红
订单表order
id user time
1 1 1516758140
2 1 1516757140
3 1 1516756140
4 2 1516759140
5 2 1516758140
6 2 1516757140
如何查出小红跟小明时间戳最大的订单(最新的订单)在一个数组里
1.用max函数查询t_order表(我加了前缀,user表也是)并根据user分组,获取最大的time数据
2.以步骤一的结果作为查询条件,进行子查询
字段名称、表明有所调整,不要在意这些细节
select * from t_order o where EXISTS (select 1 from
(select max(t.time) tm,t.user_id uid from t_order t group by t.user_id) f
where o.time = f.tm and o.user_id = f.uid);
select t1.*,t3.name from order
t1
left join order
t2 on t1.user=t2.user and t1.time<t2.time
left join user t3 on t1.user=t3.id
where t2.id is null
5 回答3.2k 阅读✓ 已解决
3 回答3.6k 阅读✓ 已解决
1 回答4k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
2 回答2.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
5 回答1.4k 阅读
表数据
