猿问

mysql 查询的问题

有一个这样的查询

用户表中的部分数据需要取到,同时去查询次用户最近一次充值的时间。求推荐思路 不想用循环。

正常做法是:先查询出所有的用户列表,然后循环这个数组 循环中查询此用户最后一次充值的时间追加在数组的末尾 
求效率高的处理方法
收到一只叮咚
浏览 362回答 4
4回答

莫回无

select A.user表字段 ,(select max(B.recharge_time) from recharge as B where B.关联id=A.keyId) as rechargeTime from user as A

人到中年有点甜

借楼上的两张表一用,sql可以采取左连接: select u.phone, r.createdAt from user u left join recharges r on u.phone = r.phone where u.phone = '' and r.createdAt in ( select max(createdAt) from recharges ) group by u.phone 类似于这种思路,不过那个sql的in性能不是很好,这里可以再稍微优化下
随时随地看视频慕课网APP
我要回答