2012-09-27 48 views
0

我在PHP中使用MySQL。
我有一個SQL表看起來是這樣的:如何至少選擇一個範圍內的所有類別

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 

我試圖找出如何可以選擇給定類別的所有日期如果至少一個落在指定日期範圍內,否則,選擇無。
例如:
如果日期範圍是從2012-09-01到2012年9月31日,那麼查詢應返回的所有行3類,並沒有爲類別4.

有沒有辦法做到這在一個單一的查詢?

謝謝!

回答

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

完美,謝謝主席先生 –

相關問題