我有很多 ClientID 和很多 pageid
例如。
客户端ID 1 页面ID 3
客户端ID 1 页面ID 1
客户端ID 2 页面ID 3
客户端ID 2 页面ID 2
客户端ID 3 页面ID 3
在查询中,我想仅显示仅包含 PageID 3 和 PageID 2 的记录。
因此,在我的结果中,我应该得到客户端 2 和 3,而客户端 1 应从结果中省略...执行此操作的最佳方法是什么?
答案:
SELECT clientID, clientName, pageID, profileTypeID, pageName
FROM client
GROUP BY
clientID
HAVING
COUNT(*) = COUNT(IF(profileTypeID != 1, profileTypeID, NULL))
最佳答案
我阅读本文的方式是,您需要给定 ClientID 不与 2 或 3 之外的页面关联的任何行。
Select ...
From MyTable As T
Where T.PageID In(2,3)
And Not Exists (
Select 1
From MyTable As T2
Where T2.ClientID = T.ClientId
And T2.PageID Not In(2,3)
)
关于mysql - MySQL独家记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5794259/