Php 根据日期获取以下帖子
在mysql中的下表中,我想获得与“follow”表相关的其他用户的跟随/订阅用户的帖子,这些帖子由某个用户订阅: 表1:下文Php 根据日期获取以下帖子,php,mysql,Php,Mysql,在mysql中的下表中,我想获得与“follow”表相关的其他用户的跟随/订阅用户的帖子,这些帖子由某个用户订阅: 表1:下文 |-----------------------------------------| | id | uid | friends | |-----------------------------------------| | 1 | 1 | 2 | | 2
|-----------------------------------------|
| id | uid | friends |
|-----------------------------------------|
| 1 | 1 | 2 |
| 2 | 1 | 3 |
| 3 | 2 | 1 |
|-----------------------------------------|
表2:员额
|-----------------------------------------------------|
| id | uid | posts | date |
|-----------------------------------------------------|
| 1 | 1 | hai.. | 2013-07-08 01:56:09 |
| 2 | 5 | awesome | 2013-07-08 11:45:50 |
| 3 | 2 | greate!! | 2013-07-09 21:13:29 |
| 4 | 3 | himm.. | 2013-07-10 12:06:10 |
| 5 | 2 | super.. | 2013-07-10 14:50:09 |
|-----------------------------------------------------|
表3:用户
|---------------------------|
| uid | name |
|---------------------------|
| 1 | ram |
| 2 | syed |
| 3 | seeta |
|---------------------------|
例如:
考虑到uid为1的用户同时关注uid为2和3的用户,我想显示我的帖子和下面的最新帖子
结果如下所示:
2 posted
super..
time:2013-07-10 14:50:09
3 posted
himm..
time:2013-07-10 12:06:10
2 posted
greate!!
time:2013-07-09 21:13:29
1 posted
hai..
time:2013-07-08 01:56:09
假设您的用户id为5:
SELECT * FROM posts WHERE posts.uid IN (SELECT follow.friends FROM follow WHERE follow.uid=5)
或者您可以加入表:
SELECT posts.* FROM posts JOIN follow ON posts.uid = follow.friends WHERE follow.uid=5
如果您也想查看自己的帖子:
SELECT * FROM posts WHERE posts.uid=5 OR posts.uid IN (SELECT follow.friends FROM follow WHERE follow.uid=5)
我不确定您的表是否使用sql,但如果使用sql,我认为获得所需数据的最佳方法是使用左连接,如下所示:
SELECT * FROM follow
JOIN posts
ON (follow.friends = posts.uid OR follow.uid = posts.uid)
WHERE follow.uid = {user_uid}
其中{user_id}是您想要的用户id
如果是这种情况,请进一步查看联接f.e.at和left联接。请显示您迄今为止尝试过的内容。表是以何种格式给出的?是mysql吗?@mysql格式的Sikian表only@prasanth我在mysql中添加了一个解决方案:我刚刚在需要的地方实现了同一用户的帖子,也许你想更新你的答案:@Jesbus你的查询是正确的..但是我只获得了关注者的帖子。我还需要关注者帖子和我的帖子uid..对不起,我会更新我的答案。@Jesbus谢谢你的代码也能工作。。它能工作谢谢sikian。@prasanth没问题,我很高兴能帮上忙。顺便说一句,下次尽量把问题弄清楚;