我的新项目就像一个博客,用户可以在其中跟随其他用户。
列出所有帖子时,每个帖子下都会有一个follow/unfollow按钮。
使用的表是用户、帖子和关注者。具体如下:
用户表
id firstName lastName
.....................................
1 arun prasanth
2 ann antony
3 sruthy abc
6 John abc
posts表
id user_id postname url
.....................................................
1 2 post1 www.url1.com
2 2 post2 www.url2.com
3 6 post3 www.url3.com
4 3 post4 www.url4.com
followers表
id user_id following_users_id date
..............................................
1 2 1 2018-01-25
2 2 3 2018-01-25
3 6 3 2018-01-25
4 3 6 2018-01-25
要列出所有帖子,我的查询如下:
SELECT * FROM posts LEFT JOIN users on posts.user_id = users.user_id;
它工作得很好,因为两个表都有相应的行,结果是列出了两个表中的所有数据列。
现在我的问题是加入第三个表(followers表)。followers表的问题是,它只有一行对应于当前登录的用户user\u id和followers.user\u id。
我尝试了所有的变体,比如左-右内连接和外连接。但没有成功。
我想要的结果是:
user.id -> xxx
user.firstName -> xxx
user.lastName -> xxx
posts.id -> xxx
posts.user_id -> xxx
posts.postname -> xxx
posts.url -> xxx
followers.id -> xxx
followers.user_id ->**Logged IN Users ID**
followers.following_users_id ->**posts.user_id**
followers.date -> xxx
followers.id、followers.user\u id、followers.following\u users\u id、followers.date仅当followers.user\u id===登录用户id和followers.following\u users\u id===posts.user\u id为true时才应打印。否则这些列应该为空。
有没有什么方法可以像上面提到的那样检索数据?我应该使用foreach循环之类的东西吗?
暂无答案!
目前还没有任何答案,快来回答吧!