V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
wampyl
V2EX  ›  程序员

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

  •  
  •   wampyl · 2018-03-19 19:37:31 +08:00 · 2885 次点击
    这是一个创建于 2441 天前的主题,其中的信息可能已经有所发展或是发生改变。
    ORACLE 数据库,存在多张表,字段数不一样但是结构类似,有一个字段是 time,如何查询多张表中最近的 100 条数据? 是在数据库中查询处理好还是写出来在业务逻辑中查询比较好?请教大家,谢谢。数据库节点不太活跃,发在这里了。
    第 1 条附言  ·  2018-03-20 08:47:56 +08:00
    我的意思就是 取出这 N 张表合并以后的最近 100 条记录,谢谢各位!
    4 条回复    2018-03-20 10:25:55 +08:00
    avichen
        1
    avichen  
       2018-03-19 20:01:09 +08:00
    完全没 get 到你这个问题的点,是不是要按时间排序后前的 100 条记录?
    查询语句后面 where 加上 ROWNUM<100,直接 sql 里面就完成了
    akira
        2
    akira  
       2018-03-19 20:09:00 +08:00
    怀疑 lz 的需求是 取出这 N 张表合并以后的最近 100 条记录
    sun1991
        3
    sun1991  
       2018-03-20 00:04:41 +08:00 via Android   ❤️ 2
    这种情况,肯定是每张表都取前 100 条数据,然后合并排序再取最终结果的 100 条数据了。

    完全放在数据库端好处是传输数据少些,毕竟最终只需要传 100 条数据。坏处是 sql 很长,难看。
    放在业务逻辑中的话,结构类似,查询函数可能复用的话,我觉得好维护些。
    keller
        4
    keller  
       2018-03-20 10:25:55 +08:00
    新建一个集合表
    用来记录 多个表的表名 id time
    然后从这个表查询
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2744 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 568ms · UTC 11:12 · PVG 19:12 · LAX 03:12 · JFK 06:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.