Итак, у меня есть две таблицы с похожими данными.В таблице A есть столбцы, которые соответствуют столбцам в таблице B, но с различными соглашениями об именах, также есть столбцы из каждого, которые не имеют эквивалента в другой таблице, строки не должны быть объединены, мне нужно представление (я думаю) со всемистроки из обеих таблиц, но с некоторыми столбцами, объединены так, что данные из таблицы A.columnB и данные из таблицы B.columnF оба попадают в представление C.columnD.В представлении будут столбцы, в которых источники есть только в одной из таблиц, а в строках другой таблицы будут нулевые.Я не могу изменить существующую структуру таблиц, поскольку база данных используется несколькими приложениями.Я думаю, что мне нужно использовать кучу FULL OUTER JOIN
утверждений в представлении, но у меня возникают проблемы, когда я думаю о том, как это сделать.Если кто-нибудь может дать общий пример того, как это должно выглядеть, я могу взять его оттуда.
Вот пример того, что не работает (на каждой стороне JOIN гораздо больше столбцовв фактической БД, усеченной для удобства чтения):
SELECT
schedule_block.id as vid,
schedule_block.reason as vreason,
schedule_block.when_ts as vwhen,
schedule_block.duration as vduration,
schedule_block.note as vnote,
schedule_block.deleted_ts as vdeleted_when,
schedule_block.deleted_user_id as vdeleted_user_id,
schedule_block.lastmodified_ts as vlastmodified_ts,
schedule_block.lastmodified_user_id as vlastmodified_user_id
FROM schedule_block
FULL OUTER JOIN appointment.appt_when as vwhen ON 1 = 1
FULL OUTER JOIN appointment.patient_id as vpatient ON 1 = 1
FULL OUTER JOIN appointment.duration as vduration on 1 = 1
FULL OUTER JOIN appointment.deleted_when as vdeleted_when ON 1 = 1
Поправьте меня, если я ошибаюсь, но я думаю, что не могу использовать UNION
, потому что на каждой стороне есть разное количество столбцов