1

您好,我想创建一个复杂的查询,我需要来自 5 个表的请求信息,并按公司名称对其进行分组,并按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. 我的数据库在所有表中都是双向的,然后我有 27 个数据库查询(页面负载非常低)
  2. 分组不起作用
  3. 在我看来,很难在视图中获取值,因为我需要使用 4 或 5 “for”

预先感谢您的帮助

4

0 回答 0