2012-09-27 2 views
0

PHP에서 MySQL을 사용하고 있습니다.하나 이상의 범주에 속하는 경우 카테고리 내에서 모두 선택하는 방법

id | category_id | date 
----------------------------- 
1 | 3   | 2012-09-12 
2 | 4   | 2012-10-25 
3 | 3   | 2012-10-12 
4 | 3   | 2012-10-02 
5 | 4   | 2012-11-03 
6 | 3   | 2012-11-02 

나는 적어도 하나는 지정된 날짜 범위에 속하는 경우 주어진 모든 카테고리의 날짜를 선택하는 방법을 알아 내려고 노력하고, 그렇지 않으면 선택 없음 :
나는 이런 식으로 뭔가를 보이는 SQL 테이블이 . 예를 들어
: 날짜 범위는 2012년 9월 1일에서 2012년 9월 31일에 경우
이 , 다음 쿼리는 카테고리 4

에 대한 카테고리 3, 없음에 대한 모든 행을 반환해야는 방법이 수행되어 이 단일 쿼리?

감사합니다.

답변

2

당신이 할 조인 또는 절에 :

select t.* 
from t join 
    (select distinct category_id 
     from t 
     where date between <datefrom> and <dateto> 
    ) tc 
    on t.category_id = tc.category_id 
order by t.category_id, date 
+0

완벽한 당신에게 선생님 감사합니다 –

관련 문제