在学说查询中的唯一商店ID

时间:2014-02-12 07:59:25

标签: php mysql sql symfony doctrine-orm

我有以下查询:

 $query = $em->createQueryBuilder()->select('p')
                    ->from("ShopMainBundle:ShopPicture", 'p')
                    ->innerJoin('p.shop', 'shop')
                    ;

我想从每个独特的商店获取图片。我该怎么做呢?换句话说,我想指定每个p应该属于X。

1 个答案:

答案 0 :(得分:0)

不确定我是否理解正确,但以下情况应该有效:

$query = $em->createQueryBuilder()->select('shop', 'p')
                ->from("ShopMainBundle:Shop", 'shop')
                ->innerJoin('s.pictures', 'p')
                ->getQuery()
                ;
foreach ($query->getResult() as $shop) {
    foreach ($shop->getPictures() as $picture) {
        ...
    }
}

修改

如果您想为每家商店购买一张照片,可以在商店进行分组:

$query = $em->createQueryBuilder()->select('p')
                ->from("ShopMainBundle:ShopPicture", 'p')
                ->groupBy('p.shop')
                ;

然而,由于Doctrine不支持RAND(),您无法获得一张随机图片。有关详细信息,请参阅How to select randomly with doctrine