Как сначала объединить две таблицы, а затем объединить другую таблицу - PullRequest
0 голосов
/ 03 марта 2020

У меня есть база данных DB2, и мне нужно объединить три таблицы. Я хотел бы объединить первые две таблицы, и после объединения первых двух таблиц я хотел бы объединить объединенную таблицу с другой третьей таблицей. Я попытался использовать левое соединение, но не смог найти результат, как я ожидал. Я попробовал следующее:

select AFJKAR as "ELR_Elig_Redirect_SchdID",
       AFEZAM as "Priority",
       AFTSAS as "ELC_Status",
       AFT7CE as "ELC_From_Date",
       AFT8CE as "ELC_Thru_Date",
       AFTTAS as "ELC_Redirect_Action", 
       AFJLAR as "GPI_List",
       AIZAHA as "GPI_List_ID",
       AILUIG as "GPI_Number",
       AICXHG as "GPI_From_Date",
       AICYHG as "GPI_Thru_Date",
       SUEFC4 as "GPI_ID",
      SUB4T3 as "Drug_Name"
from CLMPRDFIL.RCELCP as RCE
left join CLMPRDFIL.RCGP2P as RCG on RCE.AFJLAR = RCG.AIZAHA 
left join CLMPRDFIL.RCGPIP as RCGP on RCG.AIZAHA = RCGP.SUEFC4;

По сути, я хотел бы сначала объединить таблицы RCE и RCGP2P . После присоединения я хотел бы присоединиться к нему по RCGPIP .

1 Ответ

1 голос
/ 03 марта 2020

Используйте для этого соответствующий профиль / руководство по оптимизации.
Профили и рекомендации по оптимизации .
Вы можете указать желаемый порядок соединения, если вы считаете, что вы можете добиться более высокой производительности с особый порядок соединения.
Обратите внимание, что сначала вы должны попытаться собрать статистику по этим таблицам, чтобы оптимизатор Db2 использовал правильный порядок соединения. Например, попытайтесь создать статистическое представление для первых двух таблиц, используя их ключи объединения, и собирайте статистику по ним. Затем просмотрите план доступа вашего исходного запроса, чтобы проверить, получен ли желаемый порядок соединения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...