如何连接3个mysql表,其中有多个条件,即使第3个表中没有数据

guicsvcw  于 2021-06-19  发布在  Mysql
关注(0)|答案(0)|浏览(210)

我的新项目就像一个博客,用户可以在其中跟随其他用户。
列出所有帖子时,每个帖子下都会有一个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循环之类的东西吗?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题