Вам нужно ограничение в виде предложения WHERE
; если вы используете EXISTS
, вы можете основывать его на скалярном подзапросе, например,
UPDATE eval
SET rank = (
SELECT p.desc
FROM Position p
WHERE p.id = eval.faculty
AND p.date >= '2011-05-20'
)
WHERE EXISTS (
SELECT *
FROM Position p
WHERE p.id = eval.faculty
AND p.date >= '2011-05-20'
);
Обратите внимание, что вышеуказанные цели UPDATE
в базовой таблице eval
, а не имя корреляции e
. Это имеет больше смысла, когда вы думаете о SQL UPDATE
с точки зрения реляционного присваивания, то есть вы не хотите присваивать e
, потому что он (в отличие от базовой таблицы) выйдет за рамки!