2016-06-09 3 views
1

Я выяснил, как выполнить множественное обновление присоединения к таблице, но я не понимаю, как настроить вместо этого Insert. Это было мое обновление:Вставка с несколькими объединениями

Update TableA as T1 
    Inner Join TableB T2 
    Inner Join TableC T3 
    On T3.A=T1.A and T3.B=T2.Band T1.C=T2.C 
    Set T1.B=T3.B 

Теперь я пытаюсь сделать то же самое, за исключением того, что хочу вставить или обновить запись. Это возможно?

+0

сообщите нам вашу архитектуру и данные таблицы –

ответ

0

Это INSERT AS SELECT:

INSERT INTO Table1 (Col1,Col2,Col3.....) 
SELECT t2.Col1,t3.Col2,t3.Col3.... 
FROM TableB t2 
INNER JOIN TableC t3 
ON(t2.band = t3.b) 

Если вы хотите включить/исключить некоторые из Table1 данных, чтобы добавить его в стыки, а также.

+0

Проблема в том, что мне нужно вставить Col1, Col2, и я выбираю Col1 от T2 и Col2 от T3. Это просто означает, что для T3 я также выбираю, например. 'Выберите Col1 из TableB t2 Inner Join (выберите Col2 из TableC) t3' – user3649739

+0

Это нормально, посмотрите мое обновление, просто псевдоним в списке, где вы хотите его получить (t2 для tableB, t3 для tableC) @ user3649739 – sagi

+0

проблема, с которой я сталкиваюсь, - мне нужно указать поля в каждом из объединений, которые позволяют использовать условие on t2 = t3, но мне не нужны эти поля в обновлении. Я не понимаю, какая часть select/inner join указывает поля для использования для предложения on и какая часть соответствует Insert col1, coln. Я тестирую в Navicat. Думаю, я мог бы нажать на SqlFiddle, если это поможет. – user3649739

Смежные вопросы