我使用下面的sql来获取 posts
按用户id为每个用户。
(select * from `posts` where `posts`.`user_id` in (?) limit 10 offset 10)
union all (select * from `posts` where `posts`.`user_id` in (?) limit 10 offset 20)
union all (select * from `posts` where `posts`.`user_id` in (?) limit 10 offset 30)
union all (select * from `posts` where `posts`.`user_id` in (?) limit 10 offset 40)
union all (select * from `posts` where `posts`.`user_id` in (?) limit 10 offset 0)
union all (select * from `posts` where `posts`.`user_id` in (?) limit 10 offset 0)
union all (select * from `posts` where `posts`.`user_id` in (?) limit 10 offset 0)
union all (select * from `posts` where `posts`.`user_id` in (?) limit 10 offset 10)
union all (select * from `posts` where `posts`.`user_id` in (?) limit 10 offset 0)
union all (select * from `posts` where `posts`.`user_id` in (?) limit 10 offset 0)
union all (select * from `posts` where `posts`.`user_id` in (?) limit 10 offset 10)
union all (select * from `posts` where `posts`.`user_id` in (?) limit 10 offset 0)
union all (select * from `posts` where `posts`.`user_id` in (?) limit 10 offset 0)
这个 limit ? offset ?
部件用于为每个用户的帖子分页。
例如 limit 10 offset 20
意味着获得“每页10个职位和第3页”的具体用户。
我的问题是我是否有更好的解决方案而不是 union all
提高查询性能?显然这个sql有太多的子查询…
另外,这里是我的用例的上下文和需求。
一个查询同时获取用户和用户的帖子。
每个用户可以有多个帖子。
每个 ?
是一个不同的 user_id
.
这个 limit ? offset ?
可以不同,但大多数情况下,每个用户的值相同。
暂无答案!
目前还没有任何答案,快来回答吧!