0

这是一个简单的查询问题。但似乎我做错了:(我上周才开始使用 cakephp。我还在玩探索。无论如何,这是我的问题。

这是模型中的关系:产品有很多库存。库存属于产品。

这是示例 STOCKS 表:

身份证 | 产品名称 | 交易
----------------------------------
1 | 收敛剂 | 购买
2 | 谷胱甘肽 | 销售量
3 | 谷胱甘肽 | 销售量

我想从 STOCKS 表中获取每个产品的交易数量。

这是我想要的具有不同产品名称的输出:

交易 | 收敛剂 | 谷胱甘肽
------------------------------------------
购买 | 1 | 0
销售 | 0 | 2

4

1 回答 1

0

这是一个 sql 查询 -正是您所要求的。

SELECT transaction,
SUM(
CASE
  WHEN product_name = 'Astringent' THEN 1
  ELSE 0
END) AS 'Astringent',
SUM(
CASE
  WHEN product_name = 'Glutathione' THEN 1
  ELSE 0
END) AS 'Glutathione'
FROM stock
GROUP BY transaction;

但是,您是否在寻找数据透视表,即基于随机产品数的列数可变的输出?如果是这样,您的解决方案作为 MySQL 查询要复杂得多,而作为 MySQL 和 PHP 解决方案可能不那么复杂。无论哪种情况,我认为您应该共享更多的数据库模式/CakePHP 模型以及一些控制器信息。只要您希望 Cakephp 输出这种格式,用这个表格渲染一个视图就不会太难。

于 2013-09-28T17:52:12.373 回答