如何创建基于两个SQL查询的分页? (PHP)

时间:2012-10-10 11:29:53

标签: php sql pagination

我有一个显示来自两个不同表的信息的页面,为此我有两个查询。 这两个表之间没有相关信息。 由于两个查询都可能包含大量信息,因此我需要创建分页。 但是我不想要两个单独的分页,我只想要一个包含查询1和查询2的结果。

我该怎么做?

我唯一的想法是将两个查询的所有信息都提取到数组中,然后将数组合并为一个,然后创建基于该数组的分页。 那当然无助于节省资源。

1 个答案:

答案 0 :(得分:3)

你可以使用联盟 - 你显示的列必须排成一行,所以这样的东西应该有效:

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 bylimit将适用于整个结果集。

列的名称不需要在第二个选择中匹配,但使用第一个选择中的列名称order by(或创建别名,根据您的数据集,这可能更具可读性)。