Мне нужно объединить две таблицы, а затем присоединиться к еще 10 таблицам в SQL.

avatar
newbie
9 августа 2021 в 04:03
29
0
0

Я выбрал SQL-запрос в vb.net, как показано ниже, чтобы получить запись. За исключением table1 и table1history, все остальные условия кажутся одинаковыми. Есть ли способ поместить отфильтрованную дату из table1 и table2 ​​в таблицу temp и выполнить множественное соединение только один раз против temp?

select 
    colA, colB, ... 
from 
    table1 
join 
    table2 on tabel1.col = table2.col
join 
    table3 on tabel3.col = table2.col
join 
    table4 on tabel4.col = table2.col
join 
    table5 on tabel5.col = table2.col
join 
    table6 on tabel6.col = table5.col
left join 
    table7 on tabel7.col = table5.col
Left join 
    table8 on tabel8.col = table4.col
Left join 
    table9 on tabel9.col = table8.col
Left join 
    table10 on tabel10.col = table5.col

union

select 
    colA, colB, ... 
from 
    table1History 
join 
    table2 on tabel1History.col = table2.col
join 
    table3 on tabel3.col = table2.col
join 
    table4 on tabel4.col = table2.col
join 
    table5 on tabel5.col = table2.col
join 
    table6 on tabel6.col = table5.col
left join 
    table7 on tabel7.col = table5.col
Left join 
    table8 on tabel8.col = table4.col
Left join 
    table9 on tabel9.col = table8.col
Left join 
    table10 on tabel10.col = table5.col;
Источник
marc_s
9 августа 2021 в 04:14
0

Вам нужно убрать ненужную запятую (,) в конце каждого отдельного условия соединения!

newbie
9 августа 2021 в 04:20
1

Я добавил их по незнанию, когда печатал здесь.

Mr R
9 августа 2021 в 04:25
0

Привет @newbie - ты уверен, что это не то, что происходит в любом случае - у тебя есть какое-то объяснение производительности ??

newbie
9 августа 2021 в 07:38
0

Существующий запрос выбора мне нравится выше, выполняют ли они соединения с несколькими таблицами и объединение с точно такими же таблицами, за исключением одной таблицы истории. Итак, есть ли способ объединить историю table1 и table1 и применить фильтры, а затем выполнить несколько объединений? приведенный выше запрос работает, но для его выполнения требуется время.

Ответы (0)