2012-10-10 33 views
2

我有頁面顯示來自兩個不同表的信息,爲此我有兩個查詢。 這兩張表之間沒有相關的信息。 由於這兩個查詢可能包含大量信息,因此我需要創建分頁。 但我不想要兩個單獨的分頁,我只想要一個包含來自查詢1和查詢2的結果在一起。如何創建基於兩個SQL查詢的分頁? (PHP)

我該怎麼做?

我唯一的想法是將兩個查詢的所有信息提取到數組中,然後將數組合併成一個,然後根據該數組創建分頁。 這當然不會節省資源。

回答

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的第一個選擇的列名(或創建別名,根據數據集可能更易讀)。