4

2 つの異なるテーブルからの情報を表示するページがあり、そのために 2 つのクエリがあります。これら 2 つのテーブル間に関連情報はありません。どちらのクエリにも多くの情報が含まれている可能性があるため、ページネーションを作成する必要があります。しかし、2 つの別々のページネーションは必要ありません。クエリ 1 とクエリ 2 の結果が一緒に含まれる 1 つだけが必要です。

どうやってやるの?

私が持っている唯一のアイデアは、両方のクエリのすべての情報を配列にフェッチし、配列を 1 つに結合してから、その配列に基づいてページネーションを作成することです。もちろん、それはリソースの節約にはなりません。

4

1 に答える 1

4

ユニオンを使用できます-表示している列は整列する必要があるため、次のようなものが機能するはずです:

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

基本的に、union はすべてのデータをまとめ、 andorder bylimit結果セット全体に適用されます。

列の名前は 2 番目の選択で一致する必要はありませんが、最初の選択の列名を使用しますorder by(または、データセットによってはおそらく読みやすいエイリアスを作成します)。

于 2012-10-10T12:07:26.767 に答える