我有一个数据库查询
SELECT Id FROM Phone WHERE Model = 'Droid'
返回一个包含一个条目的表(因为Id是主键)。该表如下所示:
+----+
| Id |
+----+
| 1 |
+----+
有没有办法得到那个整数" 1"?我想在以下查询中使用它,但它会产生语法错误:
INSERT INTO Sale (Id, Price)
VALUES (SELECT Id FROM Phone WHERE Model = 'Droid', 100.00);
答案 0 :(得分:3)
使用此:
INSERT INTO Sale (Id, Price)
SELECT Id, 100.00
FROM Phone
WHERE Model = 'Droid';
答案 1 :(得分:1)
子查询需要包装在他们自己的()
答案 2 :(得分:1)
您只需在选择查询周围使用括号,如下所示:
INSERT INTO Sale (Id, Price)
VALUES ((SELECT Id FROM Phone WHERE Model = 'Droid'), 100.00);
这应该正常工作。
答案 3 :(得分:0)
并不是说你得到某种类型的不兼容性;你的语法错了。试试吧
INSERT INTO Sale (Id, Price)
(SELECT Id,100 FROM Phone WHERE Model = 'Droid');