请教一个 sql 查询问题,多个表查询最近的 100 条数据怎么处理?

2018-03-19 19:37:31 +08:00
 wampyl
ORACLE 数据库,存在多张表,字段数不一样但是结构类似,有一个字段是 time,如何查询多张表中最近的 100 条数据? 是在数据库中查询处理好还是写出来在业务逻辑中查询比较好?请教大家,谢谢。数据库节点不太活跃,发在这里了。
2909 次点击
所在节点    程序员
4 条回复
avichen
2018-03-19 20:01:09 +08:00
完全没 get 到你这个问题的点,是不是要按时间排序后前的 100 条记录?
查询语句后面 where 加上 ROWNUM<100,直接 sql 里面就完成了
akira
2018-03-19 20:09:00 +08:00
怀疑 lz 的需求是 取出这 N 张表合并以后的最近 100 条记录
sun1991
2018-03-20 00:04:41 +08:00
这种情况,肯定是每张表都取前 100 条数据,然后合并排序再取最终结果的 100 条数据了。

完全放在数据库端好处是传输数据少些,毕竟最终只需要传 100 条数据。坏处是 sql 很长,难看。
放在业务逻辑中的话,结构类似,查询函数可能复用的话,我觉得好维护些。
keller
2018-03-20 10:25:55 +08:00
新建一个集合表
用来记录 多个表的表名 id time
然后从这个表查询

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

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

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

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

© 2021 V2EX