MySQL, оператор Insert со значениями в качестве операторов выбора

avatar
CalcGuy
8 апреля 2018 в 03:11
35
1
0
insert into class_pre_req(class_id, cpr_id) values(select class_id from classes where catlg_nbr = 265 and subject_id = 27, select class_id from classes where catlg_nbr = 166 and subject_id = 27);

Я пытаюсь вставить в эту таблицу значения в виде операторов вставки. Я предполагаю, что просто использую неправильный синтаксис. Помогите пожалуйста?

Источник

Ответы (1)

avatar
Tim Biegeleisen
8 апреля 2018 в 03:28
1

VALUES используется только при вставке литеральных записей. Вместо этого просто вставьте оператор select, состоящий из двух подзапросов:

.
INSERT INTO class_pre_req (class_id, cpr_id)
SELECT
    (SELECT class_id FROM classes WHERE catlg_nbr = 265 AND subject_id = 27),
    (SELECT class_id FROM classes WHERE catlg_nbr = 166 AND subject_id = 27);

Обратите внимание, что для того, чтобы это работало, каждый подзапрос должен возвращать одно значение.