【发布时间】:2020-04-30 06:29:18
【问题描述】:
目前,我正在尝试实现一个餐厅应用程序。在数据库中,我有category 表和item 表,一个类别必须有很多项目,一个项目必须有一个类别,所以这是一对多关系,我想在类别没有时更新一些类别记录如果 qty on hand = 0 类别 status 应更新为 "deactivated" 这些是我的表格,则表示项目的项目
+-------+----------+-------------------+
| CatId | status | catagory |
+-------+----------+-------------------+
| C001 | Deactive | SeaFood |
| C002 | Deactive | ITALIAN & western |
| C003 | Active | Kottu |
| C004 | Active | Rice |
+-------+----------+-------------------+
+--------+-------+--------+-----------+-----------------+------------+----------+
| ItemId | CatId | Price | QtyOnHand | iteamName | Date | Time |
+--------+-------+--------+-----------+-----------------+------------+----------+
| I001 | C003 | 650.00 | 30 | chease kottu | 2020-04-26 | 19:55:59 |
| I002 | C003 | 650.00 | 25 | vgetable kottu | 2020-04-26 | 19:55:59 |
| I003 | C003 | 450.00 | 3 | chicken koththu | 2020-04-27 | 08:32:12 |
+--------+-------+--------+-----------+-----------------+------------+----------+
这是我目前尝试过的查询。
UPDATE catagory INNER JOIN item ON catagory.CatId = item.CatId SET catagory.`status` = "deactivated"
WHERE ((SELECT SUM(item.QtyOnHand)) >= 0);
此查询更新项目表中的所有类别CatId
作为初学者,对于MySQL,我需要一些帮助。
【问题讨论】:
-
条件中有
>= 0,这和“if qty on hand = 0”不一样... -
我也试过
< 0 -
但是考虑存储容易派生的数据是否真的明智
标签: mysql inner-join