【发布时间】:2018-06-13 05:51:53
【问题描述】:
在我的系统中,有实体(帖子)和 cmets。
假设有两个表:'cmets' 表和 'entities' 表
Comments 表有一个外键,它引用名为 entity_id 的实体
我担心的一件事是,我经常需要获取 cmets 和实体的计数,并且我正在使用 LEFT JOIN 来获取评论计数。
SELECT entities.*, comment_count FROM entities LEFT JOIN
(SELECT entity_id,count(id) AS comment_count FROM comments GROUP BY entity_id)
AS entity_comment ON entity_comment.entity_id = entities.id
但是每次使用 LEFT JOIN 和 COUNT 感觉有点浪费服务器资源和代码量,
所以我试图在实体表中添加一个“comment_count”列,这样我就可以在没有连接的情况下轻松获得评论计数,并在每次更改时更新它们。
我想知道这样做是否正确(或有效)。
如果有更好的解决方案,请告诉我。
【问题讨论】:
-
你试过子查询吗?不要使用连接
标签: mysql database join database-design count