1

私は基本的にこのSQLステートメントを実行したい:

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

createQueryBuilderを使用し、 createQueryを使用しない

出来ますか?私が見つけることができるすべての例は、単一の条件のみを扱っており、結合内の AND/OR の問題には取り組んでいません。

ありがとう。

4

2 に答える 2

0

そのようなことを試すことができます(たとえば、リポジトリで):

$qb = $this->createQueryBuilder('t1');
$qb->join('t1.table2', 't2', Expr\Join::WITH, 't2.id = t1.thisId OR t2.id = t1.thatId');
...
于 2013-10-23T06:09:44.600 に答える
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')
         )
)
于 2013-10-23T06:09:57.023 に答える