2011-04-26 62 views
0

我對許多pageid有很多ClientIDmySQL獨佔記錄

例如:

的ClientID 1個PAGEID 3
的ClientID 1個PAGEID 2
的ClientID 2 PAGEID 3
ClientID的3 PAGEID 3

在查詢我要調出記錄,只有PAGEID 3獨佔。

所以在我的結果我應該得到客戶端2和3和客戶端1應該省略結果...什麼是最好的方式來做到這一點?

回答

2

嘗試這一個 -

SELECT clientid FROM 
    clients 
GROUP BY 
    clientid 
HAVING 
    COUNT(*) = COUNT(IF(PageID = 3, PageID, NULL)); 
0

你可以嘗試這樣的事情......

SELECT DISTINCT ClientID 
FROM table 
WHERE PageID = 3 
AND ClientID NOT IN (SELECT DISTINCT ClientID FROM table WHERE PageID != 3) 

或者這...

SELECT DISTINCT a.ClientID 
FROM table a 
JOIN (SELECT ClientID, COUNT(*) AS total FROM table GROUP BY ClientID) b ON a.ClientID = b.ClientID 
WHERE b.total = 1 
AND a.PageID = 3 
0

不要工作見下面發表評論!

SELECT ClientID FROM table WHERE PageID=3 GROUP BY ClientID HAVING count(ClientID)=1 

這個想法,嘗試圍繞一些。

希望得到這個幫助。

+0

你只是限制可能性重複相同PAGEID內,而不是刪除他們,如果他們是在其它頁爲好。 – judda 2011-04-26 03:55:29

+0

哦!那就對了。我的錯。 – Riba 2011-04-26 03:58:18