如何通过帖子过滤友谊?

时间:2013-12-10 01:58:05

标签: mysql sql database database-design relational-database

我目前有两张桌子:

帖子表

post_id     user_id     post_text     post_time
----------------------------------------------------------
1           1           TEXT          2011-10-07 19:07:00
2           2           TEXT          2011-10-07 19:10:00
3           3           TEXT          2011-10-07 19:17:00
4           4           TEXT          2011-10-07 19:23:00
5           3           TEXT          2011-10-07 19:30:00

朋友表

friendship_id     friend1_id     friend2_id     status
----------------------------------------------------------
1                 1              2              1 (active friend)
2                 1              3              1 (active friend)
3                 2              3              0 (not friend)
4                 3              4              0 (not friend)
5                 1              4              1 (active friend)

我要做的是基本上获取所有帖子,其中用户与另一个用户持有活跃的朋友状态

Elaborating: friend1_id为1的用户与用户friend2_id 2,3和4有友谊。有friend2_id 2,3和4的用户发了帖子。如何获取用户2,3和4发布的所有帖子[由于用户1是所有帖子的朋友]?

详细说明:如果您是用户的朋友[1 - 活跃的友谊],则允许​​提取帖子,否则如果用户没有活跃的友谊,则不提取任何内容。

我希望我能很好地解释自己,否则我会详细说明。谢谢。

PS:我错过了什么吗?难道我做错了什么?有更简单的方法吗?如果是的话,请告诉我。我想学习。

1 个答案:

答案 0 :(得分:1)

阐述:

Select * from Posts 
where user_id in 
(select friend2_id from Friends where friend1_id = 1)

更多阐述:

Select * from Posts 
where user_id in 
(select friend2_id from Friends where friend1_id = 1 and status = 1)