我有3列questionid
,replyid
和userid
。
我想选择所有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,2
和8,3
位于同一网页(一个问题和两个答案),我希望避免显示重复的问题......
所以当我采用不同的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
答案 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
。