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

请教一下,如果不用 join 做联合查询的时候,结果是 limit 分页的,如何更好地实现?

  •  
  •   GodMotherLao · 2020-06-04 13:05:53 +08:00 · 1909 次点击
    这是一个创建于 1641 天前的主题,其中的信息可能已经有所发展或是发生改变。

    今早看到 https://www.v2ex.com/t/678312?p=1 的贴子,想起了我最近遇到的问题。

    如果不用 join 的话,如何实现多表关联的条件查询结合分页功能 如果不在 sql 写 limit 分页的话,数据会不准确。例如按照某个字段排序,再分页。 因为这个分页,不得不用 join,有各位办法能不用 join 做到效果吗?

    新人,请教一下。。

    为了活跃,附上图片提神

    !()[http://t12.baidu.com/it/u=1535675885,4038472212&fm=173&app=49&f=JPEG?w=480&h=360&s=B29414C6EC3487D6680328380300D018]

    4 条回复    2020-06-04 21:54:03 +08:00
    huijiewei
        1
    huijiewei  
       2020-06-04 13:41:55 +08:00
    JOIN 改 IN 搜索表查出的数据 ID 就好了
    toesbieya
        2
    toesbieya  
       2020-06-04 14:01:38 +08:00
    比如文章表里只存了创建人的 id,现在想根据创建人的名称去模糊查,然后分页,那先把符合的所有创建人查出来,再把 id 带到文章表里去分页查
    abcbuzhiming
        3
    abcbuzhiming  
       2020-06-04 14:56:00 +08:00
    实际上,你不用 join,最后无非就是自己在应用层实现了一套 Sql 连接逻辑,在数据量比较小的时候,无所谓,在数据量比较大的时候,我个人认为大部分人实现的连接算法都是不如数据库自己的那套的,就算 mysql 这种连接性能算比较差劲数据库,那引擎优化的水平也是可以随便吊打大部分连基本的 SQL 数据库引擎都没写过的程序员的
    neoblackcap
        4
    neoblackcap  
       2020-06-04 21:54:03 +08:00
    别傻了,禁 join 只是第一层,他们可不会告诉你公司还搞数据非范式化,一个表里面全部数据都记录了,join 来干嘛?外加全局可排序索引(snowflake-based id)
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2613 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 06:35 · PVG 14:35 · LAX 22:35 · JFK 01:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.