Можно ли в Java получать таблицы несвязанных данных в одном запросе SQL и наборе результатов? - PullRequest
1 голос
/ 23 августа 2011

У нас есть несколько таблиц, которые содержат «статические» пары ключ / значение, которые в настоящее время извлекаются с использованием нескольких запросов SQL (MSSQL).Можно ли извлечь все эти данные в одном запросе SQL, чтобы мы могли ссылаться на каждый ключ столбца и значение столбца в одном наборе результатов?Например:

TABLE_ONE
id, my_key_name, my_value_name

TABLE_TWO
id, my_other_key_name, my_other_value_name

Имейте в виду, что имена столбцов для ключа и значения различны для каждой таблицы.По сути, мы пытаемся объединить несколько звонков в один.Это ситуация, когда у нас должно быть несколько Java ResultSets, и нам просто нужно выполнить объединение в коде?

Ответы [ 2 ]

4 голосов
/ 23 августа 2011

Как насчет

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

1 голос
/ 23 августа 2011

Я не знаю, можете ли вы сделать это в одном операторе (разделив запросы точками с запятой), но вы, безусловно, можете создать хранимую процедуру, которая возвращает несколько наборов результатов.

После вызова getResultSet вы можете использовать метод getMoreResults (из java.sql.Statement), чтобы перейти к следующему ResultSet. Он закрывает текущий ResultSet, поэтому вам необходимо получить все необходимые данные из первого ResultSet перед вызовом getMoreResults и получением следующего ResultSet из оператора.

...