INSERT INTO Comment (info, pID, cID) VALUES(?,?,?)
SELECT Comm.cID
FROM Professor P, Comment Comm, Course Cou
WHERE P.pID = Comm.pID
AND Cou.cID = Comm.cID;
所以,基本上我试图插入字段info,pID和cID,其中已经填充了pID和cID,但是正在从Comment表中提取cID。
这可能吗?如果是这样,我的语法错误。
非常感谢。
答案 0 :(得分:2)
你真的在谈论更新行吗?
UPDATE Comment
SET info = something
FROM Professor P, Comment Comm, Course Cou
WHERE P.pID = Comm.pID
AND Cou.cID = Comm.cID;
或者,如果您只是从现有数据中创建新的注释行(为什么?):
INSERT INTO Comment (info, pID, cID)
SELECT something /* what'sinfo */, P.pID, Comm.cID
FROM Professor P, Comment Comm, Course Cou
WHERE P.pID = Comm.pID
AND Cou.cID = Comm.cID;
答案 1 :(得分:0)
您需要在与insert语句对应的每个选择位置都有一个值。
在您的示例中,您只需提取一个值,并尝试填充3个值。
另外,使用SELECT语法时不需要VALUES()子句。
insert into ABC( a,b,c )
select 1,'bbb', 'ccc' from dual