为了便于说明,假设我有一个数据库电影(标题,导演,成本,利润)。
现在我想基于另一个表中找到的导演然后硬编码值在Movies表中插入一个新行。
INSERT INTO Movies
SELECT name
FROM Directors
WHERE name = 'Lucas';
我是如何理解选择插入工作的,但如果我想使用选择以及传入硬编码值,该怎么办?理论上这样的东西是这样的:
INSERT INTO Movies
VALUES(Star Wars,(SELECT name
FROM Directors
WHERE name='Lucas'), 50000, 1000000);
这可能吗?
答案 0 :(得分:24)
INSERT INTO Movies (Title, Director, Cost, Profits)
SELECT 'Star Wars', name, 50000, 1000000
FROM Directors WHERE name = 'Lucas'
答案 1 :(得分:8)
因为您可以在select
语句中指定硬编码值,所以使用它可能更清晰:
insert into movies (title, director, cost, profits)
select 'Star Wars', name, 50000, 1000000 from directors where name = 'Lucas';
答案 2 :(得分:5)
是的,这是可能的。用户INSERT .. SELECT语法。有关详细信息,请参阅reference。硬编码值应该在SELECT查询中,而不是在VALUES中。例如。
INSERT INTO Movies
SELECT 'Star Wars', name, 50000, 1000000
FROM Directors
WHERE name = 'Lucas';
答案 3 :(得分:1)
你有数据库作为电影(标题,导演,成本,利润)。 如果你想在相应的表中输入值,那么首先选择表,然后在这些表中插入值。