2013-03-04 6 views
1


나는 2 개의 테이블을 가지고 있습니다 : 고양이 (카테고리)와 게시물.
각 카테고리별로 게시물을 선택하고 싶습니다.SELECT n 행 FROM 테이블 1 PER 테이블 2

나는 이것을 시도 :

SELECT * FROM cat 
RIGHT JOIN (SELECT * FROM post WHERE post.CatID=cat.ID LIMIT 3) ... 

문제는 MySQL은 서브 쿼리 안에 cat.ID를 인식하지 못하는 것입니다.

감사

+0

나는에'LIMIT' 출력에 ** N **을하지 않을 것을 언급해야합니다. 각 카테고리 **에 Row **를 검색하고 싶습니다. 예를 들어, 'LIMIT 3'과 함께 5 개의 범주가 있다면, 결과는 15 개의 레코드 여야합니다. – SAMPro

답변

1
SELECT a.ID, 
     a.Category, 
     b.Description 
FROM Category a 
     INNER JOIN Post b 
      ON a.ID = b.Cat_ID 
WHERE 
(
    SELECT COUNT(*) 
    FROM Post c 
    WHERE b.Cat_ID = c.Cat_ID AND 
      b.ID <= c.ID 
) <= 2 
+0

좋아요! 고마워. SQLFiddle도 주셔서 감사합니다. – SAMPro

+0

당신은'도움이 되었으면 좋겠다. –