首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用库存控制的Mysql查询

使用库存控制的Mysql查询
EN

Stack Overflow用户
提问于 2014-08-06 08:35:26
回答 2查看 742关注 0票数 0

首先,抱歉,标题并不是最具描述性的。我正在使用YII并试图创建一个股票系统,并在cgridview中显示这一点。但这并不是最重要的部分。使用两个mysql表productsstock,我试图根据库存表对每个产品进行计数。这是我的桌子。

积表

股票表

使用下面的MySQL,我得到了所需的结果。

代码语言:javascript
复制
SELECT p.name, COUNT(s.id) as product_count
FROM products AS p
LEFT JOIN stock AS s ON s.product_id = p.id
WHERE p.stock_method = 1
GROUP BY p.name

请看结果,因为我们可以看到所有的产品0的那些没有库存和8的项目有库存。

问题是股票表代表多个股票位置,因此我还需要添加一个WHERE子句,以便只查找stock_area_id = 1,一旦我这样做,我就只能得到一行,计数为8。任何能够建议需要做什么的人,我将非常感激。

作为一个副手,我有两种产品类型--例如,一种是糖果棒,我们购买了100种,当我们卖掉它们时并不在意,QTY只是减少了1(即stock_method 2),而我目前正在处理的一种产品,我们购买了100部手机,每一部都是单独储存的,因为我们需要知道谁得到了这款手机,这些都是根据系列单独储存的,而且stock_method 1--即总质量为1,因此需要进行汇总。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-09-12 08:44:02

不幸的是,我一直没有找到解决办法。我最终通过更改数据库设计得到了我所需要的,因为当前的设计使许多事情变得很困难。

票数 -1
EN

Stack Overflow用户

发布于 2014-08-06 08:40:43

我认为最好是使用HAVING而不是WHERE,而使用GROUP BY

尝试这个查询

代码语言:javascript
复制
SELECT p.name, COUNT(s.id) as product_count
FROM products AS p
LEFT JOIN stock AS s ON s.product_id = p.id
GROUP BY p.name
HAVING p.stock_method = 1 AND stock_area_id = 1
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25155704

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档