【发布时间】:2016-12-01 15:08:34
【问题描述】:
我想通过连接和分页查询从两个表中获取所有数据,以便始终存在 10 行。我的第一个问题是它仅在我的页码为 1 时才有效,没有加入。我的第二个问题(如果我解决第一个问题可能会解决)是如果页码为 1,如果有连接,它甚至不起作用。这是我的查询:
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 页上没有加入。我不明白为什么它会这样工作。 如果有人可以分享我的问题或我为什么愚蠢,请回答。 提前致谢。
编辑:除一个以外的任何页码都会返回一个空结果。一个返回它应该的东西。
编辑编辑:只有在没有连接的情况下执行查询时,上述情况才成立。在加入时,我收到一个错误:“列定义不明确”。
【问题讨论】:
-
“如果有连接就不行”是什么意思。你得到一个错误?空结果?
-
对不起。已编辑..
-
您确定发布了您使用的实际查询吗?
ORDER BY details.UPDATE_DATE < 60在 Oracle 中不是合法语法... -
对不起。再次。编辑了查询和更多详细信息。
-
你能发布你的查询的“不加入”版本吗?仅适用于第 1 页的那个。
标签: sql oracle join parameters pagination