2011-04-26 28 views
0

我有許多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應該省略結果...什麼是最好的方式來做到這一點?

+0

它是否應該獲得ClientID 1? – 2011-04-26 02:58:07

+0

沒有ClientID 1應該被忽略 – 2011-04-26 03:22:22

回答

0

如果客戶出現在多個頁面那麼就應該有更多的比包含客戶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 

這一個進行測試。前一個不提供專有記錄。

+0

沒有工作對不起 - #1064 - 你的SQL語法錯誤; 我不確定這是否會提出獨家記錄。 – 2011-04-26 03:10:15

0
SELECT * FROM yourTableName WHERE PageID = 3 

注意你的榜樣此得到的ClientID的1,2,3,但是,你剛纔所說的想客戶端ID 2,3

+0

我想忽略客戶端1,因爲他們也有pageID 2 ...我只想要pageID 3專有的記錄 – 2011-04-26 02:58:34

相關問題