mySQL独占记录
我有许多clientID到许多pageID 例如 客户ID 1页面ID 3mySQL独占记录,mysql,Mysql,我有许多clientID到许多pageID 例如 客户ID 1页面ID 3 客户ID 1页面ID 2 客户ID 2页面ID 3 客户ID 3页面ID 3 在查询中,我想调出只有PageID为3的记录 所以在我的结果中,我应该得到客户机2和3,客户机1应该从结果中忽略。。。最好的方法是什么?你可以试试这样的 SELECT DISTINCT ClientID FROM table WHERE PageID = 3 AND ClientID NOT IN ( SELECT DISTINCT Clien
客户ID 1页面ID 2
客户ID 2页面ID 3
客户ID 3页面ID 3
在查询中,我想调出只有PageID为3的记录
所以在我的结果中,我应该得到客户机2和3,客户机1应该从结果中忽略。。。最好的方法是什么?你可以试试这样的
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
这就是我的想法,尝试一下
希望有帮助。试试这个-
SELECT clientid FROM
clients
GROUP BY
clientid
HAVING
COUNT(*) = COUNT(IF(PageID = 3, PageID, NULL));
您只是在限制相同PageID中存在重复项的可能性,而不是在其他页面中删除重复项。