2013-08-05 4 views
2

쿼리 작성기를 사용하지 않고 하위 쿼리를 제한 할 수 있습니까? 예 :쿼리 작성기가없는 DQL 하위 쿼리의 제한

$results = $em->createQuery(' 
    SELECT d 
    FROM FLIContractBundle:DieselPrice d 
    WHERE d.date = (
     SELECT p.date 
     FROM FLIContractBundle:DieselPrice p 
     ORDER BY p.date DESC 
     LIMIT 1 
    ) 
')->getResult(); 
+0

'getResult()'를 호출하기 전에'setMaxResults()'를 호출 할 수 없습니까? – Ascherer

+0

부질의에 있지, 나는 할 수 없다. – tubaguy50035

+0

당신은'MAX (p.date)'를 시도 할 수 있습니다. 확실하지 않은 경우 임 확실한 DQL 함수 tho – Ascherer

답변

1
SELECT d 
FROM FLIContractBundle:DieselPrice d 
WHERE d.date = (
    SELECT max(p.date) 
    FROM FLIContractBundle:DieselPrice p 
) 
+0

좋은 도용 ..... – Ascherer

+0

이 쿼리에 대한 작동하지만 내 질문에 대한 대답은 "당신은 할 수 없다"입니다. – tubaguy50035

+1

@Ascherer 나의 답변에서 귀하의 의견과의 시간차가 1 분 미만입니다. 나는 그것을 보지 못했다. 그리고 결과가 하나의 유일한 행이기 때문에'max '를 가진'order by'는 의미가 없습니다. 당신의 대답은 당신보다 2 분 빠릅니다. 그리고 나는 그것을 떨어 뜨린 사람이 아니었다. –

1

가장 좋은 방법은 단일 쿼리를 원하는 경우 Native Query을 사용하는 것입니다.