我正试图在一个表中插入额外的行,这需要从另一个表中检索值。下面是一个示例查询:

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

b.students表的结构为rollno, ssn, name
我知道上面的问题是错误的。插入行时是否有方法从其他表中检索1个值?

最佳答案

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');

关于mysql - 如何在MySQL'insert'语句中使用'select',我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11003442/

10-11 10:53