2012-02-17 170 views
0

是否可以限制結果mysql選擇查詢返回一個條件?需要數據庫查詢幫助

比如我有一個評論表:

REVIEW_ID,member_id,文本,日期

而且我想獲得最新10條,但member_id = 123只應一次

這可以通過單個查詢來實現嗎?

回答

4

我對這個問題的解釋:

  • 10條最近的評論
  • 包括最多 1審查,member_id = 123

我要去解決這個:

  • 從滿分評論開始SULT設置
  • 去除有member_id = 123 除了最近的一個
  • 從修改後的結果集的所有評論,以最近10個

這裏的查詢:

create view newest123 as (-- this gets the newest review for member_id 123 
    select * 
    from reviews 
    where member_id = 123 
    order by date desc limit 1 
) 

select * 
from (
    select * from newest123 
    union 
    select *     -- all the reviews that aren't for member_id 123 
    from reviews 
    where member_id != 123) filtered 
order by date desc limit 10 -- sort 'em and take the top 10 
+0

現貨!謝謝。 – slash197 2012-02-17 14:40:31