UPDATE animals
SET dog = dog + 1
from animal_names, color
WHERE animal_names.name = "Buddy" and color.name = "Yellow";
基本上,我想在桌子上添加1只狗“动物”。但是,动物使用外键“animal_names”和“color”。但是,我想更新动物而不使用这些外键的ID,而是希望使用字符串而不是它们的id。
答案 0 :(得分:0)
您只需在“更新”的from
部分指定关系即可。例如:
UPDATE animals
SET dog = dog + 1
FROM animals
INNER JOIN animal_names
ON animals.nameID = animal_names.nameID
INNER JOIN color
ON animals.colorID = color.colorID
WHERE
animal_names.name = "Buddy"
AND
color.name = "Yellow" ;
(假设,对于此示例,您的主键与上面的命名整数一样。)
答案 1 :(得分:0)
我无法解决你的餐桌结构 - 我不太清楚你是怎么在动物桌上养狗的,所以我会猜测一下。
UPDATE animals
SET dog = dog + (
select count(*)
from animal_names inner join color on (whatever)
WHERE animal_names.name = "Buddy" and
color.name = "Yellow" and
animal_names.animaltype='dog'
)
可能不太对,但可以帮助你。