我目前有两张桌子:
帖子表
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:我错过了什么吗?难道我做错了什么?有更简单的方法吗?如果是的话,请告诉我。我想学习。答案 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)