これが機能しない理由を誰かに教えてもらえますか?
INSERT INTO Medical_History (pid, grafts, allergies, diseases, surgearies, treatment)
VALUES ((SELECT pid FROM Pet WHERE pet_name='Jack' AND cid=(SELECT cid FROM Customer WHERE last_name='Iwannidis' AND first_name='Giwrgos')),
'grafts', 'allergies', 'diseases', 'surgearies', treatments');
構文エラーが発生します:
unrecognized token "');"
select
ステートメントにネストされているvalues
は間違っているように見えます(すべてのデータベースがそれを受け入れるかどうかはわかりません)。これを表現するためのより一般的な方法は次のとおりです。
INSERT INTO Medical_History (pid, grafts, allergies, diseases, surgearies, treatment)
SELECT pid, 'grafts', 'allergies', 'diseases', 'surgearies', 'treatments'
FROM Pet
WHERE pet_name='Jack' AND
cid=(SELECT cid
FROM Customer
WHERE last_name='Iwannidis' AND first_name='Giwrgos'
);
これは、サブクエリが複数の値を返す場合に特に重要です。次に、クエリはエラーになる可能性があります。