Ответ 1
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'
);
Это особенно важно, если подзапрос возвращает более одного значения. Тогда запрос может получить ошибку.