你的子查询结果已经把思路框死了,id+表名,是不是可以贴一下完整需求,然后给你分析一下,
我看到的时候思路和你差不多 我是做一张视图把AB合在一起。
或者可以利用中间层,拿到A表的1,2,3这三个id后 我去A表 然后 id in (1,2,3)
然后再去B表 id in (1,2,3)输出的数据 list.add到集合里
id肯定走索引 然后查询两张表数据又会很快,只不过拼接整理的工作交给中间层去做
哈哈哈,是的,需求是两张一样的订单表,根据用户名关联两张表查询分页,时间排序~,希望大佬有更好的思路
@Benjamin杰明: 我也想过把子查询返回,代码里区分条件,然后分别去A,B表里id in(),但是能一条sql解决的事还是不要多次连接数据库好。。。
si~~,你想查啥结果集?
其实就是表A union all 表B再分页查询,如何高效,目前我是先A union all B 分页好,查出id(避免回表),再去关联表A和表B,得到上图的最后一个结果集,想知道有没有别的办法
实际上的条件不止这个userName,如果select * 发现不走索引,于是想到这种办法。表a数据量四十万吧,表b暂时没数据,直接select * 再union all需要三秒,因为不走索引,上图子查询的方式0.4秒