从仅存在pageID 3的mysql中提取唯一记录

时间:2011-04-26 02:54:49

标签: mysql

我有许多PageID的ClientID

例如

ClientID 1 PageID 3
ClientID 1 PageID 2
ClientID 2 PageID 3
ClientID 3 PageID 3

在一个查询中,我想要仅显示只有PageID 3的记录。

所以在我的结果中我应该得到客户端2和3,客户端1应该从结果中省略...最好的方法是什么?

2 个答案:

答案 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

这个是经过测试的。前一个不提供独家记录。