Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL派生的布尔列_Sql_Postgresql - Fatal编程技术网

SQL派生的布尔列

SQL派生的布尔列,sql,postgresql,Sql,Postgresql,场景:餐厅的PostgreSQL数据库 如果我有一个名为stock的列(在一个名为components的表中)和另一个名为inStock的列(在一个名为dish的表中为boolean列),那么一道菜只有在与该菜相关的所有配料都有库存的情况下才有库存。要检查这一点,我可以执行查询 是否可以执行以下操作: 如果查询返回的所有行的结果为!=0然后将该盘的inStock设置为true,否则将其设置为false 我该怎么做呢?你可以从挑选没有库存的原料开始 select distinct d.id fro

场景:餐厅的PostgreSQL数据库

如果我有一个名为stock的列(在一个名为components的表中)和另一个名为inStock的列(在一个名为dish的表中为boolean列),那么一道菜只有在与该菜相关的所有配料都有库存的情况下才有库存。要检查这一点,我可以执行查询

是否可以执行以下操作: 如果查询返回的所有行的结果为!=0然后将该盘的inStock设置为true,否则将其设置为false


我该怎么做呢?

你可以从挑选没有库存的原料开始

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
这将为您提供没有全部库存的菜肴ID

。。。然后我想使用作为子查询来进行更新

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,因此语法可能不太正确

您可以从选择没有库存的成分开始

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
这将为您提供没有全部库存的菜肴ID

。。。然后我想使用作为子查询来进行更新

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,因此语法可能不太正确

我该怎么做?配料和菜肴
是如何连接的
?有一个名为disks\u配料的表,它使用它们的ID将菜肴映射到配料。菜品|配料中的列为:dish |配料|配料|配料|不确定公式中是否支持查询,但您肯定可以为此创建一个视图。尽管如此,我还是希望write模型只是根据事件进行更新。当某些成分的可用性发生变化时,您可能会触发
ingredientutofstock
ingrediennstock
事件。一些事件处理程序将负责根据这些成分更新菜肴的可用性。因此,业务逻辑保留在写模型中,查询变得非常简单。我还没有真正使用过事件等。我该怎么做呢?配料和菜肴
是如何连接的
?有一个名为disks\u components的表,它使用它们的ID将菜肴映射到配料。菜品|配料中的列为:dish |配料|配料|配料|不确定公式中是否支持查询,但您肯定可以为此创建一个视图。尽管如此,我还是希望write模型只是根据事件进行更新。当某些成分的可用性发生变化时,您可能会触发
ingredientutofstock
ingrediennstock
事件。一些事件处理程序将负责根据这些成分更新菜肴的可用性。因此,业务逻辑保留在写模型中,查询变得非常简单。我还没有真正使用事件等。我如何让它动态工作,而不是我必须不断地执行。上面关于侦听器/事件处理程序的想法似乎不错。这是一个sql问题,因此不清楚应用程序的其他部分是什么样子的-也许这有助于实现事件发布和处理,但这实际上取决于应用程序的规模-当一个简单的更新sql命令只需一小部分时间时,会增加很多额外的复杂性app-kiss我如何让它动态地工作,而不是我必须不断地执行它。上面关于侦听器/事件处理程序的想法似乎不错。这是一个sql问题,因此不清楚应用程序的其他部分是什么样子的-也许这有助于实现事件发布和处理,但这实际上取决于应用程序的规模-当一个简单的更新sql命令只需一小部分时间时,会增加很多额外的复杂性应用程序-接吻