#mysql
#mysql
Вопрос:
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 уже заполнены, но cID извлекается из таблицы комментариев.
Возможно ли это? Если да, то что не так с моим синтаксисом.
Очень признателен.
Ответ №1:
Вы действительно говорите об обновлении строк?
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;
Ответ №2:
вам нужно иметь одно значение в каждой из позиций выбора, которое соответствует инструкции insert.
в вашем примере вы вводите только одно значение и пытаетесь заполнить 3 значения.
кроме того, вам не нужно предложение VALUES() при использовании синтаксиса SELECT.
insert into ABC( a,b,c )
select 1,'bbb', 'ccc' from dual