场景:餐馆的PostgreSQL数据库。
如果我有一个名为stock的列(在一个名为ingredients的表中),我有另一个名为inStock的列(在一个名为dish的表中的boolean列),如果所有与该菜相关的成分都只有一个菜有货为了检查这一点,我可以执行查询。
是否可以执行以下操作: 如果从查询返回的所有行的结果是!= 0,则将菜单的inStock设置为true,否则将其设置为false。
我该怎么做?
答案 0 :(得分:0)
您可以先选择没有库存的原料
select distinct d.id
from dish as d
inner join dishes_ingredients as di on di.dish_id == d.id
where di.ingredient_qty == 0
这会给你没有所有股票的菜肴。
...然后我想用作子查询进行更新
update dish
set instock = 0 // or false
where id in (
select distinct d.id
from dish as d
inner join dishes_ingredients as di on di.dish_id == d.id
where di.ingredient_qty == 0
)
没有使用postgres,因此语法可能不太正确