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

Posted

技术标签:

【中文标题】如何在 MySql 查询中为类似 Instagram 的帖子创建视图?【英文标题】:how can create view for like a post similar instagram in MySql query? 【发布时间】:2020-10-03 19:08:28 【问题描述】:

我的数据库中有 3 个表:

表 1:user_table: 用户名 |用户名 |用户密码

表 2:posts_table: 邮编 |文章标题 |用户ID

表 3:likeTable: 用户名 |帖子编号

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

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

输出表视图:

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

【问题讨论】:

【参考方案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。

【讨论】:

感谢 GMB。我想为我的应用程序实现这个。如何使用 View 做到这一点? @meisamemadian:视图不带参数。您可以直接从您的应用程序运行查询,将用户 ID 作为参数传递。

以上是关于如何在 MySql 查询中为类似 Instagram 的帖子创建视图?的主要内容,如果未能解决你的问题,请参考以下文章

MySQL:如何在 SQL 查询中为每个结果插入一条记录?

如何编写一个同时适用于 HSQLDB 和 MySQL 的查询以在 WHERE 子句中为日期添加天数?

如何从 php mysql 查询中为 jQuery 自动完成准备多维数组?

如何在 MySQL 中为每个用户选择最多 3 个项目?

如何在 Java 中为自动增量表创建查询?

如何使用 Java SprinBoot CrudRepository 在 MySQL 中为 JSON 列插入/更新一行