Eugen_M Ответов: 1

Вставка значений в table_a часть из table_b и часть из параметров?


Привет, ребята, я наткнулся здесь на сложную проблему, я хочу достичь этого в менее чем 1 командном тексте, представьте себе, что у меня есть table_a с некоторыми шаблонными данными, чтобы я мог заполнить table_b указанными шаблонными данными и еще 2 столбца, ссылающиеся на идентификаторы в качестве параметров, например:

SET @Last_ID=LAST_INSERTED_ID(); INSERT INTO table_a (col1, col2, col3) SELECT (col1,@Last_ID, col3) FROM table_b;



Возможно ли вообще такое?
Пожалуйста, оставьте комментарий ниже, Если вам, ребята, нужны дополнительные разъяснения.
с уважением,
Евгений.

Что я уже пробовал:

Я знаю, что могу сделать это с помощью 2 отдельных команд, получить все данные из table_b в программу в некоторую таблицу данных, а затем вставить данные в table_a, спамнув предложение insert в Примере строки:
SELET col1, col2 from table_b WHERE col3=@col3ParameterValue;
Insert into table_a (col1, col2, col3) Values (@col1_1, @col2_1, @col3_1), (@col1_2, @col2_2, @col3_2), (@col1_3, @col2_3, @col3_3), (@col1_4, @col2_4, @col3_4), (@col1_5, @col2_5, @col3_5), (@col1_6, @col2_6, @col3_6), (@col1_7, @col2_7, @col3_7), (@col1_8, @col2_8, @col3_8), (@col1_9, @col2_9, @col3_9)...

но этого недостаточно, и я не хочу прибегать к этому методу.

ZurdoDev

Синтаксис MySql может быть немного другим, но Microsoft Sql просто будет:

ВСТАВИТЬ ВНУТРЬ ...
Выберите tbla.field1, tbla.поле2 @некоторое_значение, @someOtherValue ...
От tbla...

Eugen_M

Извините, что у меня была ошибка с текстом вопроса, я его сейчас обновил.

ZurdoDev

Я не вижу ошибки.

Eugen_M

Так вы говорите, что это будет выглядеть так:

Вставить в table_a
Выберите table_b. col1, @Last_ID, table_b. col1,
Из table_b где table_b.col3=@some_Other_Parameter;

это правильный синтакс?

Заранее спасибо

ZurdoDev

Это должно сработать. Я бы посоветовал вам указать свои столбцы,в которые вы вставляетесь. Опять же, это может быть не совсем точный синтаксис для MySql, но в MSSql он работает:

Вставить в table_a (col1, col2, col3)
Выберите table_b. col1, @Last_ID, table_b. col2
Из table_b
Где table_b.col3=@some_Other_Parameter

Eugen_M

Большое спасибо! это сработало как заклинание, как я могу принять ваш ответ как answear?

с уважением,
Евгений.

ZurdoDev

Я опубликую решение. Рад слышать, что это сработало.

1 Ответов

Рейтинг:
8

ZurdoDev

Как уже упоминалось в комментариях, я бы предложил вам указать свои столбцы, в которые вы вставляете. Это может быть не совсем точный синтаксис для MySql но в MSSql он работает:

INSERT INTO table_a (col1, col2, col3)
SELECT table_b.col1, @Last_ID, table_b.col2
FROM table_b
WHERE table_b.col3=@some_Other_Parameter