2013-07-29 2 views
0

두 개의 엔티티가 관련되어 있으며 entityOne에 entityTwo에 두 개의 다른 관계 (diff 열로 추가 열)가 있는지 확인하는 쿼리가 필요합니다.Doctrine 2 두 개의 연관이 존재하는 쿼리

간단한 "WHERE entityTwo.diff_field = 1 AND entityTwo.diff_field = 2"는 작동하지 않습니다.

어떻게해야합니까?

감사

UPDATE :

$query = $this->createQueryBuilder('one'); 
    $query->addSelect('two')->leftJoin('one.two', 'two'); 
    $query->where('two.id = :a')->setParameter('a',1); 
    $query->andWhere('two.id = :b')->setParameter('b',2); 

EntityOne

class EntityOne { 
    /** 
    * @ORM\Id 
    * @ORM\Column(type="integer", nullable=false); 
    * @ORM\GeneratedValue(strategy="AUTO") 
    */ 
    protected $id; 

    /** 
    * @ORM\OneToMany(targetEntity="EntityTwo", mappedBy="one") 
    */ 
    protected $two; 
} 

EntityTwo

class EntityTwo { 
    /** 
    * @ORM\Id 
    * @ORM\Column(type="integer", nullable=false); 
    * @ORM\GeneratedValue(strategy="AUTO") 
    */ 
    protected $id; 

    /** 
    * @ORM\ManyToMany(targetEntity="EntityOne", inversedBy="two", cascade={"persist"}) 
    * @ORM\JoinTable(name="one_two_xref") 
    */ 
    protected $one; 
} 
+0

데이터베이스 구성표를 보여주고 mysql/mssql/oracle/postgresql에 대해 알려주십시오. – FSou1

+0

@ FSou1이 업데이트되었습니다. – MGP

답변

0

난 당신이 필요하다고 생각 EXISTS 하위 쿼리가 있습니다.

당신은 아래로 스크롤하면 difftype 2.

와도 diffType 1과 연결 entityTwo와 링크 entityTwo이 entityOnes을 선택합니다 (내 생각) 원하는이 '에 존재하는 상관 하위 쿼리와 절'에 이 문서 :

http://docs.doctrine-project.org/en/2.1/reference/dql-doctrine-query-language.html

나는 당신이 필요로하는 유사한 쿼리하지만 생각 분리 된 두 개의 같은 하위 쿼리, 뭔가 존재합니다 :

WHERE EXISTS (SELECT EntityTwo ... DiffType = 1) 
    AND EXISTS (SELECT EntityTwo ... DiffType = 2) 
관련 문제