Symfony 原则2:选择无关系或少于关系的实体

Symfony 原则2:选择无关系或少于关系的实体,symfony,doctrine-orm,Symfony,Doctrine Orm,我正在尝试查找没有关系或关系数少于3的所有行。最好的方法是什么 我尝试了以下代码,使用了几种不同的选择、连接,但我不知道如何正确执行: $db = $this->createQueryBuilder('u'); $db->addSelect('COALESCE(COUNT(errors), 0) AS HIDDEN errorCount'); $db->join('u.errors', 'errors'); $db->where('u.fi

我正在尝试查找没有关系或关系数少于3的所有行。最好的方法是什么

我尝试了以下代码,使用了几种不同的选择、连接,但我不知道如何正确执行:

    $db = $this->createQueryBuilder('u');
    $db->addSelect('COALESCE(COUNT(errors), 0) AS HIDDEN errorCount');
    $db->join('u.errors', 'errors');
    $db->where('u.field1 IS NULL AND u.field2 NOT LIKE \'\'');
    $db->having('errorCount < 3');
$db=$this->createQueryBuilder('u');
$db->addSelect('COALESCE(COUNT(errors),0)作为隐藏的errorCount');
$db->join('u.errors','errors');
$db->where('u.field1为空,u.field2不象\'\'');
$db->having('errorCount<3');

非常感谢您。

函数是一个聚合函数,它将返回单个结果,除非您指示它按某个对象分组

$db = $this->createQueryBuilder('u');
$db->addSelect('COUNT(errors) AS HIDDEN errorCount');
$db->leftJoin('u.errors', 'errors');
$db->where('u.field1 IS NULL AND u.field2 NOT LIKE \'\'');
$db->having('errorCount < 3');
$db->groupBy('u');
$db=$this->createQueryBuilder('u');
$db->addSelect('COUNT(errors)AS HIDDEN errorCount');
$db->leftJoin('u.errors','errors');
$db->where('u.field1为空,u.field2不象\'\'');
$db->having('errorCount<3');
$db->groupBy('u');

此外,如果要计算可能存在或可能不存在的关系数,请使用
左连接。这些结果的计数将为
0
,即
<3

您的意思是要选择表中有3个空字段的行?这很容易,或者我不确定我是否理解这个问题