簡體   English   中英

選擇然后再選擇不同的值

[英]select and then again select distinct values

我有3列questionidreplyiduserid

我想questionid's from userid where userid is session[userid]選擇所有questionid's from userid where userid is session[userid] ,然后從中選擇不同的questionid

現在我把所有那些屬於$_SESSION['user_id'] questionid放在一個數組中(並從中刪除重復項)然后我再次傳遞另一個查詢

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選擇* from table where questionid是前一個。

但是,正如@ Mahmoud Gamal建議的那樣

 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

這相當於您在帖子中描述的兩個查詢:

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 ,那么最終會得到一個GROUP BY questionid其中包含其他兩個字段replyid, userid ,如SUMMAXMIN聚合函數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM