Я пытаюсь сделать полное соединение между 5 таблицами. Я пытаюсь сделать это с помощью «таблицы привязки», а затем выполнить левое внешнее соединение. Выберите все отдельные ключевые поля из каждой таблицы, а затем из тех, которые оставляют внешние объединения в каждой из 5 таблиц. Делать это с ВИЧ. Вот что у меня есть ...
select
COALESCE(a.key,b.key,c.key,d.key,e.key,NULL) key,
a.field_1,
b.field_2,
c.field_3,
d.field_4,
e.field_5
from (
select distinct key from table_1
union
select distinct key from table_2
union
select distinct key from table_3
union
select distinct key from table_4
union
select distinct key from table_5
) as keyvalues
LEFT OUTER JOIN table_1 as a on a.key = keyvalues.key
LEFT OUTER JOIN table_2 as b on b.key = keyvalues.key
LEFT OUTER JOIN table_3 as c on c.key = keyvalues.key
LEFT OUTER JOIN table_4 as d on d.key = keyvalues.key
LEFT OUTER JOIN table_5 as e on e.key = keyvalues.key
Приведенный выше код является общим, у меня есть намного больше полей, чем это, но это идея. То, что показывают мои результаты, является дубликатом ключевых значений. Это потому, что ключ не обязательно является первичным ключом в этих таблицах. Так что мой результат я бы хотел, чтобы не было дубликатов. Почти, если бы я мог взять отдельную переменную «keyvalues», прежде чем я начну выполнять эти левые внешние объединения.