I have 3 columns questionid
, replyid
and userid
.
I want to select all questionid's from userid where userid is session[userid]
,
And then select distinct questionid
from it.
Right now I take all those questionid
belonging to $_SESSION['user_id']
in an array( and remove duplicates from it) and then
I again pass another query
foreach($array as $x)
{
$query="select questionid,replyid,userid from table where questionid=$x"
}
But I think that the above steps can be done in query itself(and the above step is not working also). I tried below but its not working. If I try to pass this query then duplicate value still comes:
SELECT distinct(questionid),replyid,userid
from table
where userid=$_SESSION['user_id']
So what should be the query?
questionid,replyid,userid
8 ,2 ,45
8 ,3 ,45
9 ,8 ,41
But as 8,2
and 8,3
are in same webpage(one question and two answers), I want to avoid showing duplicate question...
So I was trying the wrong way as I was taking distinct questionid
and then again selecting * from table where questionid
was previous one.
But then as @ Mahmoud Gamal suggested I did
SELECT distinct questionid, `answerid`, `userid`
FROM `table`
WHERE userid='$user'
But again I had done the same duplicate thing. So I added limit 0,1
SELECT distinct questionid, `answerid`, `userid`
FROM `table`
WHERE userid='$user'
LIMIT 0,1
This is the equivalent of the two queries you described in your post:
SELECT DISTINCT questionid, replyid, userid
FROM table
WHERE questionid IN
(
SELECT DISTINCT questionid
FROM table
WHERE userid = @user_id
)
This will give you DISTINCT questionid, replyid, userid
. But this isn't by necessary, contains DISTINCT(questionid)
.
If you are looking for distinct questionid
, you will end up with a GROUP BY questionid
with aggregate functions for other two fields replyid, userid
, like SUM
, MAX
or MIN
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With