2011-05-05 4 views
1

이봐, 내가 여기의 MySQL의 가장 큰 전문가가 아니에요하지만 내가MySQL을 사용하여 마지막 5 개의 항목 중 최대 합계를 선택 하시겠습니까?

SELECT DISTINCT 
      websites.id, 
      websites.title, 
      websites.url, 
      websites.screenshot, 
      impressions.number, 
      blocks.price 
    FROM websites 
LEFT JOIN blocks ON websites.id = blocks.website 
LEFT JOIN impressions ON blocks.id = impressions.block 
    WHERE status = 1 
     AND blocks.active = '1' 
     AND impressions.number = (SELECT MAX(number) 
            FROM impressions) 

내가하고 싶은 것은 최대 (숫자)를 선택하지만,의 합의 MAX의 entery을 얻기 위해 지금까지 무엇을 가지고 마지막 5 개 항목 나는 엉망으로 만들려고 노력했지만 그걸 얻을 수는 없습니다.

+1

무엇을 기반으로 한 마지막 다섯 가지? –

+0

@OMG 조랑말, 나는 지난 다섯 번의 인상을 추측하고 있습니다. 번호 –

답변

1

마지막 5 개의 레코드를 가져 오는 데는 정렬 할 열에 따라 다릅니다. 의는이 날짜 칼럼입니다 가정 해 보자, 그래서 다음의 예는 다음과 같습니다

SELECT MAX(n) FROM tbl ORDER BY datecol DESC limit 5; 
2

이 그것을해야 마지막 다섯 impressions.number 당신이 비록에 합계를 모르는

SELECT DISTINCT websites.id, 
       websites.title, 
       websites.url, 
       websites.screenshot, 
       impressions.number, 
       blocks.price 
FROM websites 
     LEFT JOIN blocks 
     ON websites.id = blocks.website 
     LEFT JOIN impressions 
     ON blocks.id = impressions.block 
WHERE status = 1 
     AND blocks.active = '1' 
ORDER BY impressions.number 
LIMIT 5 

만약 당신이 할 수있는 블록 수의 합계를 원한다면

관련 문제