2011-06-20 27 views
4

對於這個問題的特殊性,我很抱歉,但我已經過了48小時,現在我的想法可能是空的。有關mysql查詢的幫助

所以,我有一個表 - > ID |用戶ID |卡
其中一個用戶可以擁有多個卡

我只需要查詢表發現,有整整24不同卡的用戶ID(有用戶重複卡片)。

有人可以幫我嗎?

謝謝

回答

10
SELECT UserID 
FROM tableName 
GROUP BY UserID 
HAVING COUNT(*) = 24 

GROUP BY (Aggregate) Functions

更新:地發現,有24張不同的卡的用戶:

SELECT UserID 
FROM (
    SELECT UserID 
    FROM tableName 
    GROUP BY UserID, Card 
) rs 
GROUP BY UserID 
HAVING COUNT(*) = 24 

或者:

SELECT UserID 
FROM tableName 
GROUP BY UserID 
HAVING COUNT(DISTINCT Card) = 24 
+0

謝謝,那肯定會工作,如果我沒有搞砸我的問題。你可以看看我的編輯? –

+0

你是男人。謝謝 –

0
select * from 
    (select count(*) cnt,card from tablename group by card) 
where cnt=24 
+2

我認爲OP希望找到有24張卡的用戶,而不是有24個用戶的卡。 –

1
SELECT userid FROM (
    SELECT userid, count(*) as cnt FROM some_table GROUP BY userid 
) WHERE cnt = 24