这是一个简单的查询问题。但似乎我无法做到正确:( 我上周刚开始使用cakephp。我还在玩探索。无论如何,这是我的问题。
这是Model中的关系:产品有很多库存。库存属于产品。
这是示例STOCKS表:
ID | Product Name | Transaction ------------------------------------ 1 | Astringent | Purchase 2 | Glutathione | Sales 3 | Glutathione | Sales
我想从STOCKS表中获取每个产品的交易数量。
这是我想要的具有不同产品名称的输出:
Transaction | Astringent | Glutathione -------------------------------------------- purchase | 1 | 0 sales | 0 | 2
答案 0 :(得分: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输出此格式,使用此表呈现视图并不会太困难。