Я пытаюсь получить записи таблицы фактов из реляционной БД с 1 родительской и 4 дочерними таблицами.
Это необходимо для решения Datamart for BI.
Текущее решение - это оператор SELECT с четырьмя левыми внешними объединениями.
Если бы я должен был сделать четыре оператора выбора независимо, у меня была бы следующая информация:
Основная таблица: 786 записей
При Таблице и Tbl1: 7055 записей
При Таблице и Tbl2: 1227 записей
При Таблице и Tbl3: 18903 записей
При Таблице и Tbl4: 786 записей (1-1 отношение)
, но с первым левым внешним соединением Tbl1 левым внешним соединением Tbl2 левым внешним соединением Tbl3 левым внешним соединением Tbl4: более 9,5 миллионов записей.
Это правильный способ сделать это? 9,5 млн. правильных результатов в этом случае?
Спасибо
Код здесь:
SELECT TBL1.TBL1_ID, TBL1.DT, TBL1.FRM_ID, TBL2.TBL2_ID, TBL3.TBL3_ID,
TBL3.CITY, TBL3.ST, TBL3.ZIP, TBL3.CTRY,
TBL1.FRMT_TYP, TBL4.AMT, TBL4.COUNTIN,
TBL4.COUNTOUT, TBL4.AMT2, TBL4.LOCATION_ID, TBL5.AMTTOCUSTR, TBL1.END_DATE
FROM SCHEMA.TBL1
LEFT OUTER JOIN SCHEMA.TBL2 ON TBL2.TBL1_ID=TBL1.TBL1_ID
LEFT OUTER JOIN SCHEMA.TBL3 ON TBL3.TBL1_ID = TBL1.TBL1_ID
LEFT OUTER JOIN SCHEMA.TBL4 ON TBL4.TBL1_ID = TBL1.TBL1_ID
LEFT OUTER JOIN SCHEMA.TBL5 ON TBL5.TBL1_ID = TBL1.TBL1_ID