我有显示来自两个不同表的信息的页面,为此我有两个查询。这两个表之间没有相关信息。由于两个查询都可能包含大量信息,因此我需要创建分页。但是我不想要两个单独的分页,我只想要一个包含查询 1 和查询 2 的结果的分页。
我怎样才能做到这一点?
我唯一的想法是将两个查询的所有信息都提取到数组中,然后将数组合并为一个,然后基于该数组创建分页。这当然无助于节省资源。
我有显示来自两个不同表的信息的页面,为此我有两个查询。这两个表之间没有相关信息。由于两个查询都可能包含大量信息,因此我需要创建分页。但是我不想要两个单独的分页,我只想要一个包含查询 1 和查询 2 的结果的分页。
我怎样才能做到这一点?
我唯一的想法是将两个查询的所有信息都提取到数组中,然后将数组合并为一个,然后基于该数组创建分页。这当然无助于节省资源。
您可以使用联合 - 您要显示的列必须对齐,所以这样的事情应该可以工作:
select
col1 col1_alias,
col2 col2_alias,
...
from
table1
where
...
union
select
col1,
col2,
...
from
table2
where
...
order by col1_alias, col2_alias
limit 10
基本上,联合会将所有数据拉到一起,并且order by
andlimit
将应用于整个结果集。
列的名称不需要在第二次选择中匹配,而是使用第一次选择中的列名order by
(或创建别名,根据您的数据集,这可能更具可读性)。