我正在尝试解决一个问题,即在学说中仅使用链式连接选择有效结果,但找不到合适的解决方案。为了尽可能地简化它:
我尝试用作开头的基本查询是:
$queryBuilder
->select('p', 'c', 'a')
->from('AppBundle:Post', 'p')
->leftJoin('p.comment', 'c', Join::WITH, 'o.isActive = 1')
->leftJoin('c.author', 'a', Join::WITH, 'a.isActive = 1')
;
然而显然,如果不考虑'a.isActive',仍会产生所有评论。
我能看到的另一种方法是为“活动作者的所有活动评论”创建子查询,然后将其加入主查询中的Comment表,但似乎Doctrine不允许这样做
...
->leftJoin($subquery, 'GoodComments', Join::ON, 'GoodComments.comment_id = c.id')
...
我错过了什么或者是原生SQL唯一的方法吗?有什么想法吗?
答案 0 :(得分:0)
由于我无法撰写评论,我将在此处提供。
您是否尝试使用简单的条件作为替代方案?
->leftJoin('p.comment', 'c')
->leftJoin('c.author', 'a')
->andWhere('o.isActive=1')
->andWhere('a.isActive=1')