多个表上可过滤和可排序表视图的最佳 SQL 方法

问题描述 投票:0回答:0

实现这个用例的最佳方法是什么?想象一下,我们在某个网页上有一个简单的表格视图。为简单起见,假设我们只有这 3 列。

ID 姓名 相同的共同财产
0 A表中的名字 A 表中的属性
1 B表中的名字 B 表中的属性
2 C表中的名字 C 表中的属性

此表中的数据是从 3 个(或通常为 X)表中检索的,每个表都有填充此表所需的数据。

填充此表而不进行排序和过滤会很容易,我只需在每个表的选择上使用

UNION
(或者我只是在应用程序层上连接结果)

但是如果我们想对这个表进行排序和过滤,限制页面大小并允许分页,最好的方法是什么? (基本上是这种表格视图的“常规”功能)在这种情况下,我们无法合并所有结果,因为我们不知道如何填充页面大小(假设页面大小为 30)。

例如,如果我想过滤具有按

some value
排序的值
id
的公共属性,检索第二页 - 来自 3 个联合的结果可能有 10、100 和 1000,我根本不知道如何正确混合这些结果。

我一直在考虑一些事情,比如将这 3 个表外部连接成一个大行,然后以某种方式为每个表过滤 3 列的属性,但是 这对我来说似乎不是一个好方法,而且这种方法的性能不会要么好,我相信.

最后我想补充一点,我们正在谈论 SQL,但是如果有任何针对 PostgreSQL 的扩展,它也可以使用。

sql database postgresql
© www.soinside.com 2019 - 2024. All rights reserved.