0

私は 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'

複数の値を返し、それを行うことになっています(サブクエリの戻り値ごとにメインクエリを実行したい)が、この方法ではクエリは実行されません。何か案が?

4

2 に答える 2

3

これを試して:

INSERT INTO "Tracking" 
SELECT "studentID",false,4,false
FROM "Student" WHERE "studentClass"='2'
于 2013-03-19T14:08:28.190 に答える
1

次にINSERT INTO... SELECTステートメントを使用します

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

このステートメントについて確認することの 1 つは、テーブルTrackingに 4 列しか含まれていないことを確認することです。そうしないと、指定された値と一致しない列数が取得されます。INSERTたとえば、4 つ以上の列がある場合は、それらの値を保存する句で列名を定義します。

于 2013-03-19T14:08:38.057 に答える