Я знаю, что наиболее распространенный способ вставки нескольких новых строк в таблицу:
INSERT INTO fruits (fruit, colorId)
VALUES ('apple', 1),
('orange', 2),
('strawberry', 3);
Я также знаю, что могу вставлять результаты, полученные из SELECT, даже используя пользовательские значения:
INSERT INTO fruits (fruit, colorId)
SELECT 'pear', id
FROM colors
WHERE color = 'green';
Дело в том, что, используя любой из этих параметров (или, может быть, другой, который я не знаю), я хотел бы вставить несколько значений, используя результат, полученный в таком запросе. Например:
SELECT id
FROM colors
WHERE color = 'yellow';
вернет одно значение 4
(идентификатор для yellow
), которое я хотел бы использовать повторно в запросе множественной вставки, например
INSERT INTO fruits (fruit, colorId)
VALUES ('banana', id),
('lemon', id);
(где id
должно быть 4
). Возможно ли это?
РЕДАКТИРОВАТЬ: Кстати, я также хотел бы избежать использования подзапросов, таких как
INSERT INTO fruits (fruit, colorId)
VALUES ('banana', (SELECT id FROM colors WHERE color = 'yellow')),
('lemon', (SELECT id FROM colors WHERE color = 'yellow'));