我有許多ClientID到許多PageID從頁面3中存在的mysql中提取唯一記錄
例如,
ClientID 1 PageID 3
ClientID 1 PageID 2
ClientID 2 PageID 3
ClientID 3 PageID 3
在一個查詢中,我想只用PageID 3來調出記錄。
所以在我的結果我應該得到客戶端2和3和客戶端1應該省略結果...什麼是最好的方式來做到這一點?
我有許多ClientID到許多PageID從頁面3中存在的mysql中提取唯一記錄
例如,
ClientID 1 PageID 3
ClientID 1 PageID 2
ClientID 2 PageID 3
ClientID 3 PageID 3
在一個查詢中,我想只用PageID 3來調出記錄。
所以在我的結果我應該得到客戶端2和3和客戶端1應該省略結果...什麼是最好的方式來做到這一點?
如果客戶出現在多個頁面那麼就應該有更多的比包含客戶ID的一行
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
這一個進行測試。前一個不提供專有記錄。
沒有工作對不起 - #1064 - 你的SQL語法錯誤; 我不確定這是否會提出獨家記錄。 – 2011-04-26 03:10:15
SELECT * FROM yourTableName WHERE PageID = 3
注意你的榜樣此得到的ClientID的1,2,3,但是,你剛纔所說的想客戶端ID 2,3
我想忽略客戶端1,因爲他們也有pageID 2 ...我只想要pageID 3專有的記錄 – 2011-04-26 02:58:34
它是否應該獲得ClientID 1? – 2011-04-26 02:58:07
沒有ClientID 1應該被忽略 – 2011-04-26 03:22:22