2011-03-14 1 views
1

나는 또 다른 문제가SQL 문, 항상 종류의 3 개 항목을 나열

난 그냥 예를 들어 당신이 보여줄 수 있습니다

나는 7 개 항목

myTable | id | user_id | 
      1  1 
      2  1 
      3  1 
      4  1 
      5  2 
      6  2 
      7  2 
      8  2 
      9  2 
      10  2 
에 "myTable에"라는 표를 얻었다

이제 모든 user_id의 항목을 3 개만 나열하려고하지만 나 자신을 찾아내는 방법을 찾지 못합니다.

도와주세요! 행의 수를 반환 및 오프셋 :

id=1 | user_id=1 
id=2 | user_id=1 
id=3 | user_id=1 
id=5 | user_id=2 
id=6 | user_id=2 
id=7 | user_id=2 
+0

3 개 항목이 리턴되는 모든 기호 (예를 들어, 세 개의 작은 아이디의의를 세 번째로 큰 이드)? –

답변

1
select * from table as t1 
where (select count(*) from table as t2 
     where t1.user_id = t2.user_id and t2.id < t1.id) <3 
+0

나는 이걸 시험해보고, 5 분 만에 다시 – njaknjak

+0

나는 돌아왔다. 대단히 감사합니다! 독일에서 인사 – njaknjak

+0

여러분을 환영합니다. 감사합니다 사르데냐에서 :) –

1
SELECT * 
FROM table 
ORDER BY ... 
LIMIT 3 

한계 절은 두 개의 인수를 취합니다

------- 편집

내 결과는 다음과 같이해야 첫 번째 X 행 이외의 다른 것을 표시하려는 경우 MySQL 문서의 내용은 here입니다. 만 3 행을 원하는 경우에

+0

이것은 3 개의 엔트리를 보여 주며 목록에있는 모든 user_id의 3 개의 엔트리를 원한다.이 예제에서는 user_id = 1의 엔트리 3 개와 user_id = 2의 엔트리 3 개가 필요하다. – njaknjak

+0

그런 다음 질문을 다시 말해야한다. "각 사용자로부터 3 개의 항목". 방금 "모든 사용자의 항목 3 개"라고하셨습니다. –

0

, 당신은 limit 사용할 수 있습니다

select * from myTable limit 3;