我試圖插入額外的行到需要從另一個表中檢索值的表中。下面是一個例子查詢:如何在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