2013-06-20 4 views
1

나는 내가 사용하는 테이블에서 목록 레코드에 의구심을 보내고있어 : 나는 다음과 같은 쿼리를 사용하고목록 요소

에 의해, MAX 가입, GROUP :

     SELECT cr.* 
       FROM cliche c 
INNER JOIN cliche_revisao cr ON c.cliche_pk = cr.cliche_pk 
      WHERE cr.numero = (SELECT MAX(number) FROM cliche_revisao WHERE cliche_pk = 3) 
   GROUP BY c.cliche_pk 

문제는 모든 요소의 목록과 마찬가지로 하위 쿼리에서 리터럴 값을 전달할 필요가 없다는 것입니다.

나는이 쿼리를 시도했지만 당신은 올바른 생각을 가지고,하지만 당신은 상관 하위 쿼리를 사용할

  SELECT cr.*, @cliche:= c.cliche_pk 
       FROM cliche c 
INNER JOIN cliche_revisao cr ON c.cliche_pk = cr.cliche_pk 
      WHERE cr.numero = (SELECT MAX(numero) FROM cliche_revisao WHERE cliche_pk = @cliche) 
   GROUP BY c.cliche_pk 

답변

0

작동하지 않았다 c.cliche_pk

BY

SELECT cr.* 
    FROM cliche c 
    INNER JOIN cliche_revisao cr ON c.cliche_pk = cr.cliche_pk 
    WHERE cr.numero = (SELECT MAX(number) 
        FROM cliche_revisao cr2 
        WHERE cr2.cliche_pk = cr.cliche_pk) 

그룹을

cliche_pk의 최대 값에 해당하는 행을 가져옵니다.

+0

맞아요, 하위 쿼리에서 참조 할 수 있는지 몰랐습니다. 감사합니다.) – Marcaum54