【问题标题】:unique shop id in doctrine query学说查询中的唯一商店 ID
【发布时间】:2014-02-12 07:59:25
【问题描述】:

我有以下疑问:

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

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

【问题讨论】:

    标签: php mysql sql symfony doctrine-orm


    【解决方案1】:

    不确定我是否理解正确,但以下应该可行:

    $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 了解更多信息

    【讨论】:

    • 好吧..我想在查询中进行..基本上我想从独特的商店获取图片
    • 您能否向我们提供您尝试创建的原始 SQL?我不确定你想要达到什么目的。
    • 我什至不知道如何使用 RAW SQL.. 基本上我想从数据库中的每个独特商店获取一张随机图片.. 如果这有任何意义。关系是一个店铺可以有很多张图片
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-29
    • 2019-04-21
    • 2019-07-26
    • 2017-10-06
    • 2011-09-11
    • 1970-01-01
    相关资源
    最近更新 更多