获取不同用户的mysql数据

时间:2009-12-06 15:17:25

标签: php mysql

如果我有两个用户,一个用户在帖子表中有很多帖子,即

postid, post, userid, time(i.e timestamp) 
我又为朋友准备了一张桌子,

id, friendid, userid, friend_sinc(i.e timestamp)

现在我希望用户朋友在将user1添加为好友的日期之后应该看到user1的帖子。不是比他更早的帖子,他把他加为朋友。我怎样才能在单个MySQL查询中完成它?

3 个答案:

答案 0 :(得分:0)

这会查看人们与用户12成为朋友后的所有帖子:

select     *
from       Posts p
join       Friends f
on         p.userid = f.friendid
and        p.time >= f.friend_since
where      f.userid = 12

答案 1 :(得分:0)

SELECT p.*
FROM post p, friend f
WHERE p.userid = f.userid AND p.time >= f.friend_sinc;

编辑:我想它可以被解释为哪个人在哪个,但重点是明确的。

答案 2 :(得分:0)

使用联盟

select p.* from posts p where p.userid = <my_user_id> 
union
select p.* from posts p, friends f where 
p.userid = f.friendid and 
f.userid = <my_user_id> and 
p.time >= f.friend_since

或者您认为自己是自己的朋友,也就是说,friend中有friendid = <my_user_id> and userid = <my_user_id> and friend_since = <date user was created>的条目,然后第二个查询也可以运行并返回您自己的帖子。我认为你没有重复。