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

2020-06-04 13:05:53 +08:00
 GodMotherLao

今早看到 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]

1900 次点击
所在节点    程序员
4 条回复
huijiewei
2020-06-04 13:41:55 +08:00
JOIN 改 IN 搜索表查出的数据 ID 就好了
toesbieya
2020-06-04 14:01:38 +08:00
比如文章表里只存了创建人的 id,现在想根据创建人的名称去模糊查,然后分页,那先把符合的所有创建人查出来,再把 id 带到文章表里去分页查
abcbuzhiming
2020-06-04 14:56:00 +08:00
实际上,你不用 join,最后无非就是自己在应用层实现了一套 Sql 连接逻辑,在数据量比较小的时候,无所谓,在数据量比较大的时候,我个人认为大部分人实现的连接算法都是不如数据库自己的那套的,就算 mysql 这种连接性能算比较差劲数据库,那引擎优化的水平也是可以随便吊打大部分连基本的 SQL 数据库引擎都没写过的程序员的
neoblackcap
2020-06-04 21:54:03 +08:00
别傻了,禁 join 只是第一层,他们可不会告诉你公司还搞数据非范式化,一个表里面全部数据都记录了,join 来干嘛?外加全局可排序索引(snowflake-based id)

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

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

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

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

© 2021 V2EX