database - 如何显示2个仓库的产品总数?
问题描述
我有这个数据库:
我有一个问题,如何显示 2 个仓库中的产品总数,如果仓库 1 中的产品在仓库 2 中没有,反之亦然
我试过这样
select warehouse1.good_count+warehouse2.good_count
from warehouse1, warehouse2
join goods on (warehouse1.good_id = goods.id)
and (warehouse2.good_id=goods.id);
但它不起作用
解决方案
要么你误解了你的老师想要什么,要么你的老师以错误的方式问了这个问题。
应该只有一个WAREHOUSE
带有附加列的表(例如WAREHOUSE_TYPE_ID
,其值将是“远程”或“附近”或下一个),可能会对WAREHOUSE_TYPE
table进行外键约束。
然后你会简单地
select t.warehouse_type_name,
sum(w.good_count) summary
from warehouse w join warehouse_type t on t.warehouse_type_id = w.warehouse_type_id
group by t.warehouse_type_name;
我读了你写的评论。这些是物理上不同的仓库(一个在城市,一个在郊区)这一事实并没有改变数据模型错误的事实。它们代表的数据应该包含在同一个表中,一个表(正如我之前解释的)。
因为,当公司在另一个城市建立另一个仓库时,你会怎么做?添加另一个表?错误的!
无论如何,如果你坚持,这样的东西可能是你在这个错误的数据模型中寻找的东西:
select g.name,
sum(a.good_count + b.good_count) total_count
from goods g left join warehouse1 a on a.good_id = g.id
left join warehouse2 b on b.good_id = g.id
group by g.name
推荐阅读
- typescript - Passing object to method that will must have one specific property
- javascript - 清空Vue中禁用输入的输入值
- java - 从另一个代码添加缺少的导入语句
- ag-grid-react - 清除所有过滤器按钮不会清除 Ag-grid 中日期过滤器的值
- react-native - 如何在 React Native 中使用 axios 和 FormData 设置多部分边界
- angular - 等待 API 完成,然后再转到方法中的下一步,而不将以下步骤放在订阅函数中
- ios - 如何快速在tableview中使图像圆形
- mysql - 使用子查询和 LIMIT/OFFSET 提高 mySQL 查询的速度
- python - 在 Python 中使用 DAO 引擎 (Access) 实现完整应用程序的最简单方法是什么?
- javascript - 从 javascript 对象中的命名键获取值