我尝试从学说获得不同的行,但它不起作用(uniq酒店)
$qb = $this->createQueryBuilder('self');
$qb
->distinct('hotel')
->join('self.hotel', 'hotel')
->where('self.request = :id')
->setParameter('id',$requestId);
return $qb->getQuery()->getResult();
此DQL将返回所有酒店。
来自Symfony的SQL qwery:
我想要这个qwery:
SELECT count(DISTINCT hotel_id) FROM symfony.search_result where request_id=@requrst_id
答案 0 :(得分:0)
根据您的更新,您要构建的DQL是
$qb = $this->createQueryBuilder('self');
$qb
->select($qb->expr()->countDistinct('hotel.id'))
->join('self.hotel', 'hotel')
->where('self.request = :id')
->setParameter('id',$requestId);
return $qb->getQuery()->getSingleScalarResult();
请注意我改变了
->distinct('hotel')
至->select($qb->expr()->countDistinct('hotel.id'))
我也改变了
getResult()
至getSingleScalarResult()
现在它只返回一个带有唯一hotel_ids计数的结果