[英]select and then again select distinct values
我有3列questionid
, replyid
和userid
。
我想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,2
和8,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
,如SUM
, MAX
或MIN
聚合函數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.