Mysql Doctrine2左联接中的多个On条件
我有汇率和汇率表。我想用条令查询语言(DQL)执行左连接操作(将分支连接到速率)。 我的SQL查询是:Mysql Doctrine2左联接中的多个On条件,mysql,symfony,doctrine-orm,query-builder,dql,Mysql,Symfony,Doctrine Orm,Query Builder,Dql,我有汇率和汇率表。我想用条令查询语言(DQL)执行左连接操作(将分支连接到速率)。 我的SQL查询是: SELECT r.id rid ,r.TIME rtime ,r.rate_candidate ,r.exchange_rate ,r.branch ,r.STATUS ratestatus ,bc.currency ,bc.scale bcscale ,bc.STATUS bcstatus FROM rate r LEFT JO
SELECT r.id rid
,r.TIME rtime
,r.rate_candidate
,r.exchange_rate
,r.branch
,r.STATUS ratestatus
,bc.currency
,bc.scale bcscale
,bc.STATUS bcstatus
FROM rate r
LEFT JOIN branch_currency bc ON (
r.branch = bc.branch
AND (
r.from_currency = bc.currency
OR r.to_currency = bc.currency
)
)
WHERE r.STATUS = 1
AND bc.STATUS = 1;
更具体地说,我这里有两个问题
因此,请使用queryBuilder()显示DQL查询。提前谢谢 我建议将附加条件添加到where条件中。 除此之外,我强烈建议您阅读有关条令QueryBuilder等的文档,因为您的问题并不表明您对条令有任何经验。仅仅在没有任何个人努力的情况下抛出一个MySQL查询不是一个好的、公平的方法 这是没有测试,但应该给你一些指导
$qb = $this->_em->createQueryBuilder();
$qb->select('r.branch, bc.exchange_rate');
$qb->from('rate', 'r');
$qb->leftJoin('r.branch', 'bc');
$qb->where($qb->expr()->orX('r.from_currency=bc.currency','r.to_currency = bc.currency));