Вставка SQL с выбранными и жестко заданными значениями

Для иллюстрации, скажем, у меня есть база данных Movies (Title, Director, Cost, Profits).

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

INSERT INTO Movies 
SELECT name 
  FROM Directors 
 WHERE name = 'Lucas';

Я понимаю, как работают отдельные вставки, но что делать, если я хочу использовать select, а также передавать жестко закодированные значения. Итак, что-то теоретически такое:

INSERT INTO Movies 
VALUES(Star Wars,(SELECT name 
                    FROM Directors 
                   WHERE name='Lucas'), 50000, 1000000);

Возможно ли это?

Ответ 1

INSERT INTO Movies (Title, Director, Cost, Profits)
SELECT 'Star Wars', name, 50000, 1000000
FROM Directors WHERE name = 'Lucas'

Ответ 2

Поскольку вы можете указать жестко заданные значения в инструкции select, возможно, более чистым использовать:

insert into movies (title, director, cost, profits)
   select 'Star Wars', name, 50000, 1000000 from directors where name = 'Lucas';

Ответ 3

Да, это возможно. Синтаксис пользователя INSERT.. SELECT. Подробнее см. ссылка. Строгие кодированные значения должны быть в запросе SELECT, а не внутри значений VALUES. Например.

INSERT INTO Movies
SELECT 'Star Wars', name, 50000, 1000000
FROM Directors 
WHERE name = 'Lucas';

Ответ 4

у вас есть база данных в виде фильмов (название, директор, стоимость, прибыль). если вы хотите ввести значения в соответствующие таблицы, сначала выберите таблицу, а затем вставьте значения в эти таблицы.