我有许多PageID的ClientID
例如
ClientID 1 PageID 3
ClientID 1 PageID 2
ClientID 2 PageID 3
ClientID 3 PageID 3
在一个查询中,我想要仅显示只有PageID 3的记录。
所以在我的结果中我应该得到客户端2和3,客户端1应该从结果中省略...最好的方法是什么?
答案 0 :(得分:0)
SELECT * FROM yourTableName WHERE PageID = 3
请注意,您的示例中的ClientID为1,2,3。但是,您提到的只是想要ClientID 2,3。
答案 1 :(得分:0)
如果客户端出现在多个页面中,则应该有多行包含clientId
SELECT * FROM tableName WHERE PageID = 3 GROUP BY ClientID HAVING ( COUNT(ClientID) = 1 )
我没有对此进行测试,但应该可以使用。
编辑:
SELECT * FROM tableName WHERE ClientID IN (SELECT ClientID FROM tableName GROUP BY ClientID HAVING (COUNT(ClientID) = 1)) AND PageID = 3
这个是经过测试的。前一个不提供独家记录。