问题描述
我的数据库中有3个表:
表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。