摘要:
我有一些需要在客户端显示的数据库数据。到目前为止,这些数据没有进行分页,但现在数据已经增长到影响连接速度的程度了。所以我想对其进行分页。
设置:
- 客户端使用DataTables
- 服务器端使用F#
- 数据库是postgres
问题:
我有3个表:表[A,B,C]。表A与表B和C存在着一对多的关系。因此,当我执行以下查询时
select * from A left join B on a.id = b.tableidb left join C on a.id = c.tableidc
我会得到7行,这很好。这实际上是我想要的所有数据。问题真正出现在我们尝试进行分页时
select * from A left join B on a.id = b.tableidb left join C on a.id = c.tableidc limit 5 offset 0
如您所见,它确实只返回5行。然而,由于进行了左连接,我们并没有得到完整的数据集。
期望解决方案
我想说的是类似于“从表A的0偏移量开始给我5行数据,然后在表B和C上进行左连接”的语句。
是否有一种方法可以在postgres中实现这个目标呢?