求问不用 join 条件下,如何查询统计后的分页数据

2023-06-28 12:06:08 +08:00
 arbit
接到一个需求,有两个表( a 表和表),接口需要返回分页列表,包括 a 表所有字段,b 表部分字段,c 字段( a 表 a1 除以 b 表 b1 )
考虑到尽量不用 join ,所以用 a 表查询出分页记录后,在 java 层面再查询 b 表数据,最后再计算出 c 字段
可是产品又提出需要对 c 字段进行筛选(比如 c 字段的值大于多少),这样分页就很难处理了

像这种统计场景下,需要对处理后的字段进行筛选,排序等,大佬们一般是采取什么解决方案呢,是在 sql 直接计算吗
主要是公司提倡尽可能不多表 join ,不过也合理,因为需求一旦叠加,多表的 join 确实难维护
916 次点击
所在节点    问与答
7 条回复
iPisces77
2023-06-28 12:10:06 +08:00
这 不只能在 sql 层面算 你还要加筛选呢
Akitora
2023-06-28 12:11:32 +08:00
子查询
adoal
2023-06-28 12:25:12 +08:00
让产品主管、技术主管、经费主管人肉 PK 先,谁活下来听谁的。
产品主管壮烈了,就不用做这个需求了。
技术主管壮烈了,可以换掉怕多酱的 MySQL ,改改规矩。
产品主管和技术主管联手打得经费主管趴下做舔狗,可以加预算把事务和分析解耦,分析操作用数仓。
potatowish
2023-06-28 12:31:35 +08:00
宽表了解一下
arbit
2023-06-28 13:43:37 +08:00
@potatowish #4 宽表的话一般是定时器去刷吗
potatowish
2023-06-28 13:59:43 +08:00
@arbit 使用 cdc 中间件或者定时任务同步都可以,看业务对数据实时性的要求。
biankobe24
2023-06-29 17:35:43 +08:00
用定时任务刷到 a 表,最简单有效,根据更新时间刷就行,a 表某一条数据变动就刷一次这条数据,基本能保证是实时的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/952348

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX