【问题标题】:doctrine2 select in from学说2 从中选择
【发布时间】:2013-07-31 16:16:37
【问题描述】:

如何在 Doctrine 2 QueryBuilder 中执行此查询:

SELECT AVG(x.distance) avg_distance FROM (SELECT r.* FROM result r WHERE r.place_id = ? GROUP BY r.place_id ORDER BY r.id DESC LIMIT 100

我试试这个:

$dql = $qb
        ->select('r.*')
        ->from('CoreBundle:Result', 'r')
        ->where('r.place = :place')
        ->orderBy('r.id', 'DESC')
        ->setMaxResults(100)
        ->setParameter('place', $place)
        ->getDQL()
;

$result = $qb
            ->select('AVG(x.distance) avg_distance')
            ->from($dql, 'x')
            ->getQuery()
            ->getArrayResult();

但不工作

SELECT r.* FROM': Error: Class 'SELECT' is not defined.

【问题讨论】:

    标签: php symfony doctrine-orm subquery


    【解决方案1】:
    $sql = "SELECT AVG(x.distance) avg_distance FROM (SELECT r.* FROM result r WHERE r.place_id = :place_id ORDER BY r.id DESC LIMIT 100) x ";
    
    $stmt = $this->em->getConnection()->prepare($sql);
    $stmt->bindValue(':place_id', $place->getId());
    $stmt->execute();
    return $stmt->fetch();
    

    【讨论】:

      猜你喜欢
      • 2016-01-26
      • 1970-01-01
      • 2013-02-09
      • 1970-01-01
      • 2021-07-14
      • 1970-01-01
      • 1970-01-01
      • 2016-02-29
      • 2013-09-29
      相关资源
      最近更新 更多