JDBC:是否可以对先前查询的结果执行另一个查询?

时间:2009-09-08 09:23:47

标签: jdbc

我想先得到一些结果集(包括两个连接和选择),然后获取结果集中其中一列的最大值。 我需要原始结果集中的数据和最大值。 这是可能的JDBC,以及如何?

2 个答案:

答案 0 :(得分:0)

你可以使用标准SQL来做,虽然它有点尴尬:

SELECT a, b, c, (SELECT MAX(c) FROM table1 JOIN table2 ON table1.id = table2.table_id) max_c
FROM table1
JOIN table2 ON table1.id = table2.table_id

答案 1 :(得分:0)

我认为是。应该是这样的:

SELECT MAX(derivedTable.myRow) FROM 
(SELECT * FROM table1 JOIN table2 ON table1.id = table2.some_id) derivedTable 

关键是为你的内部选择一个别名(上面的“derivedTable”)并对其进行另一个选择。

---根据评论进行编辑:

不,我不认为这是可能的。即使没有JDBC层 - 比如说,在直接的SQL控制台中 - 我也不认为有办法在我知道的任何RDBMS中查询结果集中的数据。

根据查询的速度和结果的大小,执行第二个查询或只是迭代结果以找到最大值是最佳选择。