如何在MySql查询中为类似instagram的帖子创建视图?

问题描述

我的数据库中有3个表:

表1:用户表: userId |用户名| userPass

表2:posts_table: postId | postTitle |用户名

表3:like表: userId | postId

现在,如何在MySQL查询中为类似instagram的帖子创建视图?

我希望我的输出表如下所示,所有帖子都显示出来,如果用户喜欢,则数字为1,否则为NULL值

outputTableView:

postId | postTitle | likeCount | userLike(forUsers)
----------------------------------------
1        Title1         100         1 (value 1 for like)
2        Title2         200         NULL
3        Title3         150         1

解决方法

这里是一种选择:

select 
    p.post_id,p.post_title,count(l.post_id) likes_count,nullif(max(l.user_id = ?),0) user_likes
from posts_table p
left join like_table l on l.post_id = p.post_id
group by p.post_id

问号应替换为您要为其生成报告的用户的ID。