我基本上想做这个SQL语句:
SELECT * FROM Table1
JOIN Table2
ON (
Table2.ID = Table1.THIS_ID
OR
Table2.ID = Table1.THAT_ID
)
使用createQueryBuilder而不是 createQuery。
可能吗?我能找到的所有示例都只处理一个条件,并没有解决连接中的 AND/OR 问题。
谢谢。
我基本上想做这个SQL语句:
SELECT * FROM Table1
JOIN Table2
ON (
Table2.ID = Table1.THIS_ID
OR
Table2.ID = Table1.THAT_ID
)
使用createQueryBuilder而不是 createQuery。
可能吗?我能找到的所有示例都只处理一个条件,并没有解决连接中的 AND/OR 问题。
谢谢。
您可以尝试类似的方法(例如在存储库中):
$qb = $this->createQueryBuilder('t1');
$qb->join('t1.table2', 't2', Expr\Join::WITH, 't2.id = t1.thisId OR t2.id = t1.thatId');
...
你可以这样做:
$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')
)
)