【问题标题】:Modify SQL query to include cases without a value修改 SQL 查询以包含没有值的案例
【发布时间】:2021-02-19 16:15:36
【问题描述】:

我有这个数据库任务,我需要在其中编写一个查询“以显示每个类别的 ID 和名称,以及属于该类别的产品数量”。我能够解决它并使用此查询。

SELECT Category.Id, Category.Name, COUNT(Category.Name) 
FROM Category, Product 
WHERE (CategoryId = Category.Id) 
GROUP BY Category.Id;

但我想修改它以显示所有类别,即使是没有产品的类别。卡在这部分。任何帮助表示赞赏。

【问题讨论】:

    标签: sql database count subquery left-join


    【解决方案1】:

    你可以left join:

    select c.id, c.name, count(p.categoryid) cnt_products
    from category c
    left join product p on p.categoryid = c.id
    group by c.id;
    

    关联子查询也是一个很好的解决方案,它避免了外部聚合:

    select c.*,
        (select count(*) from product p where p.categoryid = c.id) cnt_products
    from category c
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-10
      • 1970-01-01
      • 1970-01-01
      • 2016-07-17
      • 2022-11-26
      • 1970-01-01
      相关资源
      最近更新 更多