CakePHP:SQL查询蛋糕->;查找()
首先,这是我的建议 我试着用每天订购的某个元素的数量做一个图表CakePHP:SQL查询蛋糕->;查找(),sql,cakephp,Sql,Cakephp,首先,这是我的建议 我试着用每天订购的某个元素的数量做一个图表 date | count 2011-04-22 | 10348 2011-04-23 | 2751 因为我对SQL更熟悉,所以我首先想到了这一点,这就是最终的结果(并且有效) 现在为了提高我的找蛋糕技巧,我试图理解如何将其转换为查找(“列表”)或查找(“全部”)查询,但我真的不知道该如何处理这个问题 任何帮助都将不胜感激 $this->DeliveryNote->bindModel(array( '
date | count
2011-04-22 | 10348
2011-04-23 | 2751
因为我对SQL更熟悉,所以我首先想到了这一点,这就是最终的结果(并且有效)
现在为了提高我的找蛋糕技巧,我试图理解如何将其转换为查找(“列表”)或查找(“全部”)查询,但我真的不知道该如何处理这个问题
任何帮助都将不胜感激
$this->DeliveryNote->bindModel(array(
'hasOne'=>array(
'DeliveryNotesProduct'=>array(
'conditions'=>array('DeliveryNotesProduct.DeliveryNoteId = DeliveryNote.id')
),
'Product'=>array(
'conditions'=>array('DeliveryNotesProduct.ProductId = Product.id')
),
'ElementsProduct'=>array(
'conditions'=>array('ElementsProduct.ProductId = Product.id')
),
'Element'=>array(
'conditions'=>array('ElementsProduct.ElementId = Element.id')
)
)
));
$data = $this->DeliveryNote->find('all',array(
'conditions'=>array(
'Element.id'=>4,
'DeliveryNote.DeliveryDate BETWEEN ? AND ?'=>array('2011-04-22','2011-05-22')),
'fields'=>array('DeliveryNote.DeliveryDate','SUM(DeliveryNotesProduct.Count * ElementsProduct.Count) AS count'),
'group'=>array('DeliveryNote.DeliveryDate')
));
CakephpbindModel
用于连接表,hasOne
是关联类型之一
我个人不得不通过打电话给几个发现者来实现这一点。一次都没找到。要将其实现为单个sql查询,我建议在模型中创建一个函数,该函数正好执行此查询。谢谢!虽然已经这样做了,但我只是想知道是否有一种更“容易结块”的方法;)刚刚试过,但给了我奇怪的SQL错误。。。(即使在解除绑定其他模型后)
SQL错误:1054:on子句中的未知列“Product.delivery\u note\u id”
Product.delivery\u note\u id;我没有在整个查询中使用它。。可能还有其他问题。。。看看你们所有的模型(包括在查询中),我认为这个问题与你们的模型有关。这很奇怪,我已经提前解除了所有模型的绑定。。。尽管如此,多亏了你的链接,我找到了它,这使它起了作用;)
$this->DeliveryNote->bindModel(array(
'hasOne'=>array(
'DeliveryNotesProduct'=>array(
'conditions'=>array('DeliveryNotesProduct.DeliveryNoteId = DeliveryNote.id')
),
'Product'=>array(
'conditions'=>array('DeliveryNotesProduct.ProductId = Product.id')
),
'ElementsProduct'=>array(
'conditions'=>array('ElementsProduct.ProductId = Product.id')
),
'Element'=>array(
'conditions'=>array('ElementsProduct.ElementId = Element.id')
)
)
));
$data = $this->DeliveryNote->find('all',array(
'conditions'=>array(
'Element.id'=>4,
'DeliveryNote.DeliveryDate BETWEEN ? AND ?'=>array('2011-04-22','2011-05-22')),
'fields'=>array('DeliveryNote.DeliveryDate','SUM(DeliveryNotesProduct.Count * ElementsProduct.Count) AS count'),
'group'=>array('DeliveryNote.DeliveryDate')
));