Вложенные таблицы - PullRequest
       0

Вложенные таблицы

0 голосов
/ 24 сентября 2019

У меня есть таблица C в качестве главной таблицы, которая соединяет левое соединение с таблицей E на столбце col3 и соединяет левое соединение с таблицей F на столбце col4.

(
    FROM A
    LEFT OUTER JOIN B ON A.col1 = B.col1
    LEFT OUTER JOIN C ON A.col2 = C.col2
    LEFT OUTER JOIN E ON A.col3 = E.col3
    LEFT OUTER JOIN F ON A.col4 = F.col4

)temptab1

Который должен соединяться слева с

(
    FROM C
    LEFT OUTER JOIN E ON C.col3 = E.col3
    LEFT OUTER JOIN F ON C.col4 = F.col4

)temptab2

Теперь я должен присоединиться к temptab1 к temptab2 на (C.Col3 = temptab2.Col3 OR C.Col4 = temptab2.Col4)?ИЛИ я должен присоединить temptab1 к temptab2 на (C.Col3 = temptab2.Col3 AND C.Col4 = temptab2.Col4)?

Если мне нужно использовать предложение ИЛИ, это сильно мешает выполнению запроса ...

Вместо этого я попытался использовать предложение объединенияиз условия ORТем не менее, производительность запросов не улучшается ...

Пожалуйста, предложите лучший запрос.

1 Ответ

0 голосов
/ 24 сентября 2019

temptab1 - все строки A. Temptab2 - все строки C. И temptab1 - LEFT JOIN с temptab2, что приводит ко всем строкам A. Вы можете использовать операторы CASE, чтобы определить совпадающие значения в A, B, C, D, E, F и удалите соединение с помощью temptab2.Извинения, не могли прокомментировать ...

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