如何找到加入表Cakephp?

时间:2015-03-26 15:26:41

标签: cakephp find

这就是问题所在。我有一个表'商店'表格'产品',所以每个商店(例如沃尔玛)都有一系列产品:(咖啡,牛奶,番茄酱等)我需要做一个只检索2个随机商店的发现,条件是商店必须至少有一个产品。

我正在做这样的发现:

$this->Store->find('all', array( 'conditions' => ...... , 'order' => 'rand()','limit' => 2));

但是此查找可以检索没有产品的商店

我无法在表产品中进行查找,因为多个产品具有相同的商店,而随机商品可能会导致同一商店两次。

1 个答案:

答案 0 :(得分:0)

按照您提到的那样在“产品”表格中执行查找,然后过滤以仅获取 DISTINCT store_id 。这将过滤两次获得同一商店。类似于:

$this->Store->Product->find('all', array(
        'order'     => 'rand()',
        'limit'     => 2,
        'fields'    => array('DISTINCT(Store.id)')
    ));

或者只是分组 Store.id

$this->Store->Product->find('all', array(
        'order'     => 'rand()',
        'limit'     => 2,
        'group'     => 'Store.id'
    ));