首页 > 解决方案 > 使用 count 从不同的表中获取行数作为生成的列?

问题描述

我有一个用户可以喜欢内容的系统。

用户和内容都有 ID,所以我制作了一个表格,喜欢内容的用户在其中存储了他们的 ID。

我可以通过 SQL 查询获得喜欢该内容的用户数。

SELECT count(*) from likes WHERE content_id={id of content you want the count of}

我想过使用生成的列,但显然这不是解决方法。

目前,我只是在内容表上有一个喜欢的列,每次用户喜欢它时它都会增加。但是,我认为,有可能会出现错误,因为它与实际喜欢的数量不同步。

任何帮助,将不胜感激!

标签: mysql

解决方案


下面将列出 table 的所有列,content并将添加喜欢计数作为最后一列(这是假设 table 中的 id 列contentid):

SELECT *,
(SELECT count(*) from likes WHERE content_id=id) likes
FROM content

推荐阅读