2012-10-01 56 views
5

我有3列questionid,replyiduserid選擇然後再選擇不同的值

我想選擇全部questionid's from userid where userid is session[userid], 然後從中選擇不同的questionid

現在我把所有這些questionid屬於$_SESSION['user_id']在數組(並從中刪除重複項),然後 我又通過另一個查詢

foreach($array as $x) 
{ 
$query="select questionid,replyid,userid from table where questionid=$x" 
} 

但我認爲,上述步驟可以完成查詢本身(和上述步驟也不起作用)。我在下面嘗試,但它不工作。 如果我試圖通過這個查詢然後複製值仍來自:

SELECT distinct(questionid),replyid,userid 
from table 
where userid=$_SESSION['user_id'] 

那麼應該怎麼查詢?

questionid,replyid,userid 

8   ,2  ,45 

8   ,3  ,45 

9   ,8  ,41 

但作爲8,28,3都在同一個網頁(一個問題,兩個答案),我想避免重複顯示的問題...

所以我想,我正在採取不同的方式不對questionid然後再次選擇* from table where questionid是之前的一個。

但隨後由於@馬哈茂德·賈邁勒建議我做

SELECT distinct questionid, `answerid`, `userid` 
FROM `table` 
WHERE userid='$user' 

而我又做了同樣的事情重複。所以我添加limit 0,1

SELECT distinct questionid, `answerid`, `userid` 
FROM `table` 
WHERE userid='$user' 
LIMIT 0,1 
+0

你試過'GROUP BY'嗎? – hjpotter92

+0

不,但現在就試試看,如果可能,你能告訴我一個例子嗎? – netuser

回答

1

這是您在您的文章中描述的兩個查詢是等效的:

SELECT DISTINCT questionid, replyid, userid 
FROM table 
WHERE questionid IN 
(
    SELECT DISTINCT questionid 
    FROM table 
    WHERE userid = @user_id 
) 

這會給你DISTINCT questionid, replyid, userid。但這不是必要的,包含DISTINCT(questionid)

如果您正在尋找distinct questionid,你最終會與其他兩個領域replyid, userid集合函數的GROUP BY questionid,像SUMMAXMIN

+0

雅,它仍然顯示重複值,因爲即使你得到消毒questionid(8),表是這樣(8,2,45)和(8,3,45)和(9,8,41)..so,我們得到的行將仍然是重複的 – netuser

+0

@netuser - 您可以添加一些示例數據,以及您希望如何從該查詢中選擇。 –

+0

@netuser你嘗試過'SELECT DISTINCT questionid,replyid,userid'就像在我的編輯? –