在Java中是否有可能在单个SQL查询和结果集中检索不相关数据的表?



我们有多个包含"静态"键/值对的表,这些表当前使用多个SQL (MSSQL)查询提取。是否有可能在一个SQL查询中提取所有这些数据,以便我们可以在单个结果集中引用每个列键和列值?例如:

TABLE_ONE
id, my_key_name, my_value_name
TABLE_TWO
id, my_other_key_name, my_other_value_name

请记住,每个表的键和值的列名是不同的。基本上,我们想把多个电话合并成一个。在这种情况下,我们必须有多个Java结果集,我们只需要在代码中进行组合吗?

SELECT id, my_key_name, my_value_name
FROM   TABLE_ONE
UNION
SELECT id, my_other_key_name, my_other_value_name
FROM   TABLE_TWO

?

参见:UNION

我不知道您是否可以在一个语句中做到这一点(通过用分号分隔查询),但您肯定可以创建一个返回多个结果集的存储过程。

调用gettresultset后,您可以使用getmoreeresults方法(来自java.sql.Statement)移动到下一个ResultSet。它关闭当前的ResultSet,所以你需要在调用getmoreeresults和从语句中获得下一个ResultSet之前从第一个ResultSet中获得你需要的任何数据。

最新更新