我对SQL查询语法很弱,我需要用php symfony2进行一次查询。
我有桌子公司。它有“城市”栏目
我有表CompanyCategory。它有“company_id”和“category_id”列
我有表类别。它有“名称”栏。
我需要获得所有可用城市的类别总数。
示例:
["Riga" => 156,
"Berlin" => 225]
我环顾了几个小时,但其他例子对我没有帮助,因为我还不能理解这些复杂的查询。
我以前和现在都尝试了很多案例,并且每次都会遇到不同的例外情况。
public function getCategoriesInCities() {
return $this->getEntityManager()
->createQuery('SELECT c.city, count(*) as categorycount FROM AdminBundle:Company c INNER JOIN AdminBundle:CompanyCategory s')
->getArrayResult();
}
[Syntax Error] line 0, col -1: Error: Expected Doctrine\ORM\Query\Lexer::T_WITH, got end of string.
其他情况:
public function getCategoriesInCities() {
return $asData = $this->getEntityManager()
->createQuery('SELECT c.city, count(*) as categorycount FROM AdminBundle:Company c INNER JOIN AdminBundle:CompanyCategory s ON(c.id = s.company_id) GROUP BY c.city')
->getArrayResult();
}
[Syntax Error] line 0, col 123: Error: Expected Doctrine\ORM\Query\Lexer::T_WITH, got 'ON'
其他情况:
public function getCategoriesInCities() {
return $this->createQueryBuilder('c')
->select('c.city, COUNT(*) as categorycount')
->innerJoin('AdminBundle:CompanyCategory ON(c.id = cc.company_id)', 'cc')
->groupBy('c.city')
->getQuery()
->getArrayResult();
}
[Syntax Error] line 0, col 138: Error: Expected Literal, got 'BY'
等......无法找到解决方法。
答案 0 :(得分:1)
它是一个简单的JOIN查询..
SELECT t.city,count(*) as categoryCount
FROM Company t
INNER JOIN CompanyCategory s ON(t.id = s.company_ID)
GROUP BY t.city
您不是这个网站的新手,所以在将来,至少要尝试展示您自己做的一些尝试和努力。