如何在MySQL'insert'语句中使用'select'

use*_*122 12 mysql select insert

我正在尝试将其他行插入到表中,该表需要从另一个表中检索值.以下是一个示例查询:

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

b.students表的结构是rollno, ssn, name.

我知道上面的查询是错误的.有没有办法在插入行时从其他表中检索1个值?

Jon*_*ler 38

INSERT INTO a.grades (rollno, grade)
    SELECT rollno, 'A' FROM b.students WHERE ssn = 12345;
Run Code Online (Sandbox Code Playgroud)

有些DBMS会接受以下内容,在SELECT语句周围有一组额外的括号:

INSERT INTO a.grades (rollno, grade)
   VALUES((SELECT rollno FROM b.students WHERE ssn = 12345), 'A');
Run Code Online (Sandbox Code Playgroud)