2011-03-20 61 views
1

美好的一天,Mysql - 訂閱多個類別時只選擇一次用戶

目前我正在開發一個項目,而且我有點卡住了。這是一個相對簡單的表格,這個問題是關於這個問題的(見這張照片:http://cl.ly/5M0x)。

有一個user_id列表和一個categorie_id列表,每個列表代表另一個表(用戶和類別)中的一個id。現在我試圖讓每個類別既簡單又可以像做內用戶數:

'SELECT COUNT(uc.user_id) as total FROM xs2media_users_categories as uc GROUP by uc.categorie_id' 

但是我要的是,當用戶已經計數特定類別也不會計入其訂閱的另一個分類。因此,例如,如果用戶數量4訂閱了類別2,則會增加該數量的計數,但對於類別3不再增加,即使他也可以訂閱該類別。

希望這使得sence。

謝謝。

回答

2

以下查詢爲每個用戶選擇一個類別,然後統計每個類別的用戶數。

select categorie_id 
     ,count(*) 
    from (select user_id 
       ,min(categorie_id) as categorie_id 
      from xs2_media_users_categories 
     group 
      by user_id 
     ) u 
    group 
    by categorie_id; 

這是你在找什麼?

+0

確實,它做了我想做的一些調整。謝謝! – Matthijn 2011-03-20 11:09:39

+0

歡迎:) – Ronnis 2011-03-20 11:14:00