我试图插入额外的行到需要从另一个表中检索值的表中。下面是一个例子查询:如何在MySQL'插入'语句中使用'select'
insert into a.grades (rollno, grade)
values(select rollno from b.students where ssn=12345, 'A');
b.students
表的结构是rollno, ssn, name
。
我知道上面的查询是错误的。有没有办法在插入一行时从其他表中检索1个值?
我试图插入额外的行到需要从另一个表中检索值的表中。下面是一个例子查询:如何在MySQL'插入'语句中使用'select'
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');
从你的第二个查询中得到它。谢谢 – user1074122
列在INSERT INTO和选择必须等于
insert into grades (field1, field2)
select field1,field2 from students where ssn=12345;
我试了一下选择语句周围没有paranthesis。现在我通过添加()来获得它。 – user1074122