MySQL - Массовая вставка в таблицу из результата запроса select - PullRequest
2 голосов
/ 19 января 2020

Я хочу получить все строки из таблицы items, где id > 100

SELECT `id` FROM `items` WHERE `id` > 100

И для каждой из этих строк, возвращенных сверху select, вставить новую строку в таблицу item_tags ;

INSERT INTO `item_tags` (`item_id`, `tag_id`) VALUES (107, 123)
INSERT INTO `item_tags` (`item_id`, `tag_id`) VALUES (114, 123)
.
.
.
INSERT INTO `item_tags` (`item_id`, `tag_id`) VALUES (299, 123)

Можно ли сделать это одним запросом в MySQL?

1 Ответ

1 голос
/ 19 января 2020

Рассмотрим синтаксис INSERT ... SELECT ...:

INSERT INTO `item_tags` (`item_id`, `tag_id`) 
SELECT `id`, 123 FROM `items` WHERE `id` > 100

. Будет вставлена ​​одна запись в item_tags для каждой записи в items, имеющая id > 100, с фиксированным значением 123 для столбца tag_id.

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