为了便于说明,假设我有一个数据库电影(标题,导演,成本,利润).
现在我想基于另一个表中找到的导向器然后硬编码值在Movies表中插入一个新行.
INSERT INTO Movies
SELECT name
FROM Directors
WHERE name = 'Lucas';
Run Code Online (Sandbox Code Playgroud)
我是如何理解选择插入工作,但如果我想使用选择以及传入硬编码值该怎么办.理论上这样的东西是这样的:
INSERT INTO Movies
VALUES(Star Wars,(SELECT name
FROM Directors
WHERE name='Lucas'), 50000, 1000000);
Run Code Online (Sandbox Code Playgroud)
这可能吗?
Phi*_*hil 25
INSERT INTO Movies (Title, Director, Cost, Profits)
SELECT 'Star Wars', name, 50000, 1000000
FROM Directors WHERE name = 'Lucas'
Run Code Online (Sandbox Code Playgroud)
因为您可以在select语句中指定硬编码值,所以使用它可能更简洁:
insert into movies (title, director, cost, profits)
select 'Star Wars', name, 50000, 1000000 from directors where name = 'Lucas';
Run Code Online (Sandbox Code Playgroud)
是的,这是可能的.用户INSERT .. SELECT语法.有关详细信息,请参阅参考 硬编码值应该在SELECT查询中,而不是在VALUES中.例如
INSERT INTO Movies
SELECT 'Star Wars', name, 50000, 1000000
FROM Directors
WHERE name = 'Lucas';
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
33493 次 |
| 最近记录: |