Синтаксис MySQL INSERT с использованием внешнего ключа - PullRequest
0 голосов
/ 23 октября 2011

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

Я хочу вставить данные в таблицу, используя данные из другой таблицы. вот пример: у меня есть table1:

TABLE1
id  name  value  max_data  diff

И вот таблица2

TABLE2
id name max_data
1  nm1  8000
2  nm2  9000
3  nm3  9500
4  nm4  9600
...

При вставке я знаю идентификатор из таблицы 2 и хочу использовать имя и max_data из него. Примерно так:

INSERT INTO table1 (value, diff, name, max_data) VALUES (5.0, -0.3, table2.name table2.max_data) WHERE table2.id = 3

1 Ответ

1 голос
/ 23 октября 2011

Ты имеешь в виду это?

insert into table1 (value, diff, name, max_data)
select 5.0, -0.3, name, max_data
from table2
where id = 3

Вы можете включить любые литералы, которые вы хотите в предложении SELECT. Вы также можете использовать эту технику для вставки нескольких строк одновременно.

...