2011-04-26 63 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