加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

PostgreSQL从一个表中选择all并从表关系中连接计数

发布时间:2020-12-13 16:06:18 所属栏目:百科 来源:网络整理
导读:我有两个表,post_categories和帖子.我正在尝试从post_categories;中选择*,但每次在帖子上使用帖子类别时,也会返回一个带有计数的临时列. 帖子 | id | name | post_category_id || 1 | test | 1 || 2 | nest | 1 || 3 | vest | 2 || 4 | zest | 3 | 发布类别
我有两个表,post_categories和帖子.我正在尝试从post_categories;中选择*,但每次在帖子上使用帖子类别时,也会返回一个带有计数的临时列.

帖子

| id | name | post_category_id |
| 1  | test | 1                |
| 2  | nest | 1                |
| 3  | vest | 2                |
| 4  | zest | 3                |

发布类别

| id | name  |
| 1  | cat_1 |
| 2  | cat_2 |
| 3  | cat_3 |

基本上,我试图在没有子查询和连接的情况下这样做.像这样的东西,但在真正的psql中.

select * from post_categories some-type-of-join帖子,count(*)

理想情况下,这样做.

| id | name  | count |
| 1  | cat_1 | 2     |
| 2  | cat_2 | 1     |
| 3  | cat_3 | 1     |

非常感谢您的帮助:D

解决方法

您可以使用包含每个post_category_id计数的派生表,并将其连接到post_categories表

select p.*,coalesce(t1.p_count,0)
from post_categories p
left join (
    select post_category_id,count(*) p_count
    from posts
    group by post_category_id
) t1 on t1.post_category_id = p.id

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读