我想通过 2 个不同的来源进行分页。我想我可以使用将 2 个查询合并为一个的方法来做到这一点,但是,我不想并行合并它们。
是否可以选择第一个查询的大小,所以我可以限制第二个查询的大小;允许我正确分页;首先通过第一个查询;如果部分/没有结果;然后通过第二个查询分页。
我显然可以在我的应用程序级别实现这一点,但我更喜欢单个查询。
想了想,或许我可以做这样的事情?
with a as (... offset :offset limit :limit),
a_count as (select count(*) from a)
select * a
union
select ...
offset (select count from a_count)
limit greatest(:limit - (select count from a_count), 0)
这有效率吗?我可以改进什么?