在这个查询中帮助我

时间:2009-12-11 18:18:51

标签: php sql mysql

我正在努力开发一个网站,用户可以成为彼此的朋友,并可以在成为朋友的日期后看到他们的帖子........我已经发布了这个问题大约5-7天但是可以找不到任何解决方案........ !! 所以... 我有两张桌.......... 帖子和朋友 我的查询是

$sql = mysql_query("
SELECT * 
FROM posts p 
JOIN friends f 
ON p.currentuserid = f.friendid 
AND p.time >= f.friend_since 
OR s.currentuserid=$myid 
WHERE f.myid=$thisid 
ORDER BY p.postid DESC LIMIT 20");

其中$ myid是currentuserid,p.currentuserid是poss表中单元格的名称,friendid在friends表中。

这个查询一直在正常工作,但问题是在这个查询中,如果当前用户发布任何它显示两次的东西,即

my new post
mynew post

但在数据库中它是单项.....但是当前用户可以一次性看到他们的朋友帖子

我该如何解决这个问题

1 个答案:

答案 0 :(得分:2)

  

此查询一直正常工作但问题是在此查询中,如果当前用户发布任何事物,它会显示两次

使用:

SELECT DISTINCT * 
  FROM posts p 
  JOIN friends f ON p.currentuserid = f.friendid 
                AND p.time >= f.friend_since 
                 OR s.currentuserid=$myid 
 WHERE f.myid=$thisid 
ORDER BY p.postid DESC 
   LIMIT 20

我添加了DISTINCT关键字以删除重复项。通常我会使用GROUP BY,但您没有提供列。