在INSERT sql语句中嵌套SELECT

lep*_*leg 11 sql syntax-error insert-statement

谁能告诉我为什么这不起作用?

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');
Run Code Online (Sandbox Code Playgroud)

我收到语法错误:

unrecognized token "');"
Run Code Online (Sandbox Code Playgroud)

Gor*_*off 22

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'
              );
Run Code Online (Sandbox Code Playgroud)

如果子查询返回多个值,这一点尤为重要.然后查询可能会出错.