Doctrine2:createQueryBuilder,它有一个带有多个条件的innerJoin

时间:2013-10-23 03:16:58

标签: symfony doctrine-orm doctrine-query

我基本上想要做这个SQL语句:

SELECT * FROM Table1
JOIN Table2
ON (
Table2.ID = Table1.THIS_ID
OR
Table2.ID = Table1.THAT_ID
)

使用 createQueryBuilder createQuery

有可能吗? 我能找到的所有例子只涉及单一条件,并且不解决连接中的AND / OR问题。

感谢。

2 个答案:

答案 0 :(得分:0)

您可以尝试类似的东西(例如在存储库中):

$qb = $this->createQueryBuilder('t1');
$qb->join('t1.table2', 't2', Expr\Join::WITH, 't2.id = t1.thisId OR t2.id = t1.thatId');
...

答案 1 :(得分:0)

你可以这样做:

$qb->leftJoin(
         'u.Phonenumbers', 
         'p', 
         Expr\Join::WITH, 
         $qb->expr()->orx(
                 $qb->expr()->eq('t.this_id', 't1.id'),
                 $qb->expr()->eq('t.this_id', 't1.id')
         )
)