2つの表からすべてのデータを取得し、問合せを結合してページングして、常に10行が存在するようにしたいとします。私の最初の問題は、ページ番号が1の場合にのみ、結合なしで動作することです。私の2番目の問題(おそらく最初の問題を解決すれば解決されます)は、ページ番号が1の場合、ジョインがあれば機能しないということです。これは私のクエリです:Oracle SQLでのパラメータと結合
SELECT * FROM
(
SELECT INNER_TABLE.*, ROWNUM r
FROM (
SELECT details.*, extras.* FROM d_table details, e_table extras
WHERE SYSDATE - details.UPDATE_DATE < 60
ORDER BY details.UPDATE_DATE DESC
) INNER_TABLE
WHERE ROWNUM < (:pageNum * :PerPage + 1)
)
WHERE r >= (((:pageNum - 1) * :perPage) +1);
これはページ1での結合なしで動作します。なぜこのように動作するのか分かりません。 誰かが私の問題に関して光を分かち合うことができる、またはなぜ私がばかげているのか、答えてください。 ありがとうございます。
EDIT:1以外のページ番号は空の結果を返します。 1つはそれがべきであるものを返す。
EDITEDIT:上記は、照会が結合なしで実行された場合にのみ当てはまります。結合で、私はエラーを取得します: "列があいまいに定義されています"。
「参加があれば動作しません」とはどういう意味ですか?あなたはエラーが発生しますか?空の結果ですか? –
申し訳ありません。編集済み.. –
実際に使用したクエリを投稿したことはありますか? 'ORDER BY details.UPDATE_DATE <60'はOracleの正当な構文ではありません... –