如何创建复杂的查询symfony2学说

时间:2014-04-17 17:40:38

标签: php symfony doctrine-orm dql createquery

您好我想创建一个复杂的查询,我需要5个表中的请求信息,并通过branches.name对其进行分组。应用branches.idMunicipality的过滤器,我的查询是下一个:

$em = $this->getDoctrine()->getManager();
    $companies = $em->createQuery('
        SELECT categories,
                subcategories,
                companies, 
                branches, 
                sales 
                FROM AspersoftDirectorioBundle:CompanyCategory categories 
                JOIN categories.subcategories subcategories 
                JOIN subcategories.companies companies
                JOIN companies.branches branches
                LEFT JOIN companies.sales sales
                WHERE branches.idMunicipality = :idMunicipality
                GROUP BY companies.id
                ORDER BY categories.name ASC'
    )
            ->setParameter('idMunicipality' , "475")
            ->getResult();
    return $companies;

我的问题是:

  1. 我的DB在所有表中都是双向的,然后我有27个DB查询(页面加载非常低)
  2. 分组不工作
  3. 在我看来很难在视图中获取值,因为我需要使用4或5“for”
  4. 提前感谢您的帮助

0 个答案:

没有答案