Вы опубликовали много "объединений". Я не собираюсь переписывать его для вас, но - я бы предложил вам переключиться на более поздний явный синтаксис JOIN, который делает вещи несколько проще и понятнее, когда вы отделяете объединения от условия . Более того, он позволяет вам внешнее соединение одной и той же таблицы с несколькими таблицами, что невозможно с помощью старого оператора внешнего соединения (+)
Oracle.
Что-то вроде этого
select ...
from table_1 a left join table_2 b on a.id = b.id
full outer join table_3 c on c.id = a.id
...