2016-10-20 9 views
-1

RATE 및 BRANCH_CURRE 테이블이 있습니다. Doctrine Query Language (DQL)에서 왼쪽 조인 작업 (요율에 가입)을 수행하려고합니다. 내 SQL 쿼리는 다음과 같습니다Doctrine2의 다중 온 조건

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; 

더 구체적으로, 나는 두 테이블에서 일부 특정 열을 선택하는 방법 여기

  1. 두 가지 질문이 있습니다.
  2. 테이블을 조인하는 동안 여러 ON 조건을 지정하는 방법.

그래서 queryBuilder()를 사용하여 DQL 쿼리를 표시하십시오. 고맙습니다 사전에 !!!

답변

0

추가 조건을 where 조건에 추가하는 것이 좋습니다. Doctrine QueryBuilder에 관한 문서를 읽는 것을 권장합니다. Doctrine에 대한 경험이 전혀 없음을 보여주는 질문이 아니기 때문에. 개인적인 노력없이 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));