와 조인하위 쿼리는 교리 DQL
select
e.*
from
e
inner join (
select
uuid, max(locale) as locale
from
e
where
locale = 'nl_NL' or
locale = 'nl'
group by
uuid
) as e_ on e.uuid = e_.uuid and e.locale = e_.locale
내가 쿼리 및 하위 쿼리를 생성하는 QueryBuilder를 사용하려고 노력했다. 나는 그들이 그들 자신에 의해 옳은 일을한다고 생각하지만 나는 그것들을 결합 선언문에 결합 할 수 없다. 이것이 DQL로 가능하다면 지금 아무도 없습니까? 실제 객체를 반환하기 때문에 native SQL을 사용할 수 없으며이 쿼리가 실행되는 객체를 알지 못합니다 (uuid 및 locale 속성이있는 기본 클래스 만 알고 있음).
$subQueryBuilder = $this->_em->createQueryBuilder();
$subQueryBuilder
->addSelect('e.uuid, max(e.locale) as locale')
->from($this->_entityName, 'e')
->where($subQueryBuilder->expr()->in('e.locale', $localeCriteria))
->groupBy('e.uuid');
$queryBuilder = $this->_em->createQueryBuilder();
$queryBuilder
->addSelect('e')
->from($this->_entityName, 'e')
->join('('.$subQueryBuilder.') as', 'e_')
->where('e.uuid = e_.uuid')
->andWhere('e.locale = e_.locale');
하위 쿼리에서 INNER JOIN을 수행하는 것은 정확히 [무엇을하려고하는지]입니다 (http://stackoverflow.com/questions/27007090/inner-join-results-from-select-statement-using-doctrine -querybuilder). 해결책을 찾았습니까? –