如何解决如何设置最大结果查询包含 leftjoin 关系?
public function getArtistsScreen(array $filters)
{
$qb = $this->getEntityManager()->createQueryBuilder('ap');
$qb->select('ap')->from(ArtistProfile::class,'ap');
$qb->select("apc18.name,GROUP_CONCAT( ap.id,'|',usr.firstName,usr.lastName,cat.id,ap.averageRating,ap.weekdayHourlyRate,ap.countTotalComments,usr.avatar,apc18.name SEPARATOR ';' ) as artists")
->join('ap.user','usr')
->join('ap.category','cat')
->leftJoin(ArtistProfileCategoryI18N::class,'apc18',Join::WITH,'cat.id = apc18.artistProfileCategory')
->where($qb->expr()->in('ap.category',':category'))->setParameter('category',$filters['category'])
->andWhere('ap.status =:status')->setParameter('status','a')
->orderBy('ap.id','DESC')
->setFirstResult(0)
->setMaxResults(1);
$data = $qb->getQuery()->getResult();
return $this->screensConcatParser($data);
}
还有screensConcatParser方法
public function screensConcatParser($data)
{
/** @var ScreenModel[] $itemsArtist */
$itemsArtist = [];
foreach ($data as $item) {
$artists = explode(';',$item['artists']);
$objectData = [];
foreach ($artists as $artist) {
$handleArtist = explode('|',$artist);
$objectData [] =new ScreenModel($handleArtist[1] . ' ' . $handleArtist[2],(int)$handleArtist[3],(float)$handleArtist[4],$handleArtist[7],(int)$handleArtist[6],(float) $handleArtist[5],(int)$handleArtist[0],1,null,$handleArtist[8],null);
}
$itemsArtist [] = [
'items' => $objectData,'title' => $objectData[0]->getMotto()
];
}
return $itemsArtist;
}
我也尝试使用 orderBy 函数但它没有给出任何不同的结果,而不是左连接我尝试使用内部连接并且没有发现差异
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。