SQL子查询的多个返回值

时间:2013-03-19 14:07:22

标签: sql postgresql subquery

我正在使用PostgreSQL 9.1,我编写了以下SQL语句:

INSERT INTO "Tracking" VALUES 
((SELECT "studentID" FROM "Student" WHERE "studentClass"='2'),false,4,false);

问题在于子查询:

SELECT "studentID" FROM "Student" WHERE "studentClass"='2'

返回多个值,并且它应该这样做(我想按子查询的每个返回值执行主查询),但通过这种方式,查询将不会被执行。有什么想法吗?

2 个答案:

答案 0 :(得分:3)

试试这个:

INSERT INTO "Tracking" 
SELECT "studentID",false,4,false
FROM "Student" WHERE "studentClass"='2'

答案 1 :(得分:1)

然后使用INSERT INTO... SELECT声明

INSERT INTO "Tracking" 
SELECT "studentID" , false , 4 , false
FROM   "Student" 
WHERE  "studentClass" = '2'

确保此声明的一件事是确保表Tracking仅包含4列,否则您将获得与提供的值不匹配的列数。例如,如果您有超过4列,请在要保存这些值的INSERT子句中定义列名称。