我对许多pageid有很多ClientIDmySQL独占记录
例如:
的ClientID 1个PAGEID 3
的ClientID 1个PAGEID 2
的ClientID 2 PAGEID 3
ClientID的3 PAGEID 3
在查询我要调出记录,只有PAGEID 3独占。
所以在我的结果我应该得到客户端2和3和客户端1应该省略结果...什么是最好的方式来做到这一点?
我对许多pageid有很多ClientIDmySQL独占记录
例如:
的ClientID 1个PAGEID 3
的ClientID 1个PAGEID 2
的ClientID 2 PAGEID 3
ClientID的3 PAGEID 3
在查询我要调出记录,只有PAGEID 3独占。
所以在我的结果我应该得到客户端2和3和客户端1应该省略结果...什么是最好的方式来做到这一点?
尝试这一个 -
SELECT clientid FROM
clients
GROUP BY
clientid
HAVING
COUNT(*) = COUNT(IF(PageID = 3, PageID, NULL));
你可以尝试这样的事情......
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
不要工作见下面发表评论!
SELECT ClientID FROM table WHERE PageID=3 GROUP BY ClientID HAVING count(ClientID)=1
这个想法,尝试围绕一些。
希望得到这个帮助。
你只是限制可能性重复相同PAGEID内,而不是删除他们,如果他们是在其它页为好。 – judda 2011-04-26 03:55:29
哦!那就对了。我的错。 – Riba 2011-04-26 03:58:18