首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Symfony 3-理论-大查询的困难

Symfony 3-理论-大查询的困难
EN

Stack Overflow用户
提问于 2019-04-24 13:47:52
回答 1查看 184关注 0票数 1

我很生气,因为一个大的查询,有点向四面八方。

她将使用几张桌子:

  • 用户
  • 套餐
  • 用户类型
  • PackageDDLExternal (带有外键User.id和Package.id,其中添加了日期属性)

此查询的目的是返回包含以下内容的列表:

与下载次数不同的现有包,在一定时间内,按给定的顺序(ASC或DESC)下载,所有这些取决于ID表作为参数传递的用户类型。

所以我已经:

Paquet :

类型应用程序:

用户:

TypeUtilisateur与Paquet:的manyToMany关系

与PackageDDLExternal:

因此,我已经尝试创建了这个查询,但是一方面似乎存在synthax错误(在添加顺序的级别)和其他似乎阻止的事情.

代码语言:javascript
复制
public function getPackagesDDLBetween($debut, $fin,$typesUser,$ordre)
{
    $qb = $this->createQueryBuilder('p');

    $queryBuilder = $qb
    ->select("pa.titre, count(p.package)")
    ->join("p.package","pa")
    ->join("p.user","u")
    ->where("p.date between :debut and :fin")
    ->andWhere($qb->expr()->in("u.typeUser", $typesUser[0]))
    ->groupBy("pa.titre")
    ->orderBy("count(p.package) :ordre")
    ->setParameter('debut',$debut)
    ->setParameter('fin',$fin)
    ->setParameter('ordre', $ordre);
    return $queryBuilder->getQuery()->getResult();
}

使用$order,我得到了以下错误:

语法错误行0,col 213: Error:预期的已知函数,得到“计数”

但是如果没有它,我的结果就是空的。

有人能帮我吗?

编辑:查询几乎是好的。问题仍然是:

代码语言:javascript
复制
->andWhere($qb->expr()->in("u.typeUser", $typesUser))

我的$ tabUser值得这样做:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-24 13:50:17

使用别名:

代码语言:javascript
复制
->select("pa.titre, count(p.package) as total")

以别名订购:

代码语言:javascript
复制
->orderBy("total", $ordre)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55831644

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档