19

別のテーブルから値を取得する必要があるテーブルに追加の行を挿入しようとしています。以下はクエリの例です。

insert into a.grades (rollno, grade)
values(select rollno from b.students where ssn=12345, 'A');

b.studentsテーブルの構造は ですrollno, ssn, name

上記のクエリが間違っていることはわかっていました。行の挿入中に他のテーブルから 1 つの値を取得する方法はありますか?

4

3 に答える 3

48
INSERT INTO a.grades (rollno, grade)
    SELECT rollno, 'A' FROM b.students WHERE ssn = 12345;

一部の DBMS は、SELECT ステートメントを囲む括弧の追加セットを使用して、次のステートメントを受け入れます。

INSERT INTO a.grades (rollno, grade)
   VALUES((SELECT rollno FROM b.students WHERE ssn = 12345), 'A');
于 2012-06-12T19:27:33.787 に答える
4

insert into と select の列は等しくなければなりません

INSERT INTO grades (field1, field2)
  SELECT field1, field2 from students where ssn=12345;
于 2012-06-12T19:27:13.510 に答える