Использование полного внешнего соединения в HSQLDB

Поддерживается ли полное внешнее соединение в HSQLDB. Я пытался использовать его, но он не работает. Я пытаюсь сделать что-то вроде этого.

  1. Запрос 1 извлекает данные из таблицы A как ключ, значение
  2. Запрос 2 извлекает данные из таблицы B как ключ, значение. Теперь мне нужно внешнее соединение, в котором я буду объединять данные между двумя, где ключи совпадают, а также получать данные, где ключи не совпадают. Если внешнее соединение не поддерживается в HSQLDB (мы используем hsqldb и не можем изменить базу данных), какой подход лучше всего использовать для эффективной реализации этого.

Спасибо.


person Rajat    schedule 12.08.2009    source источник
comment
Я думаю, что могу использовать левое внешнее соединение и объединить его с предложением союза, чтобы сопоставить результаты из таблицы 2, где ключи не совпадают. Не уверен, что это хороший подход или нет.   -  person Rajat    schedule 12.08.2009


Ответы (1)


ПОЛНОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ поддерживается в HSQLDB 2.0. Для более старых версий используйте это

SELECT * FROM (
SELECT table1.key, table1.value, table2.value FROM table1 LEFT OUTER JOIN table2 ON table1.key = table2.key
UNION 
SELECT table1.key, table1.value, table2.value FROM table2 LEFT OUTER JOIN table1 ON table1.key = table2.key
)
person fredt    schedule 05.07.2010