2011-02-23 4 views
0

모든 기사와 해당 범주 (현재 범주와 일치하는)를 추출하는 쿼리가 있습니다.JOIN에서 쿼리를 제한 하시겠습니까?

카테고리 당 5 개의 기사 만 가져오고 싶습니다. 내가 어떻게 해?

쿼리 :

SELECT a.* FROM 
        Articles a 
        LEFT JOIN Articles_category b 
        ON a.id=b.article_id 
        LEFT JOIN Categories c 
        ON c.id = b.category_id 
        LEFT JOIN Articles_category ac1 
        ON ac1.main = 1 AND a.id = ac1.article_id AND ac1.position > 0 
        WHERE c.id = '14' 
        ORDER BY b.main DESC 

나는 그것이 5 제품을 선택하려는 각 범주에 대한 꼭대기.

답변

1

해당 쿼리로는 수행 할 수 없습니다. 카테고리 ID에 따라 유사한 쿼리를 반복해야합니다. 저장 프로 시저에서이 작업을 수행하거나 코드에서 반복적으로 쿼리를 반복 할 수 있습니다.

+0

어떻게해야합니까? – WEBProject

+1

개별 카테고리에 대해 현재 코드가 이미 그렇게하고있는 것처럼 보입니다. 마지막 5 개의 행만 반환하려면 마지막에 "LIMIT 5"를 입력해야합니다. 일치하는 해당 범주의 처음 5 개를 반환 할 것이므로 PHP에서 범주를 반복해야합니다. 저장 프로 시저에 필요한 구문에 익숙하지 않지만 범주 테이블에서 SELECT가 될 것이라고 생각하고 그 문을 여러 번 실행합니다. – corrodedmonkee

관련 문제