首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用group by时,如果结果为0,则不会显示计数(*)

使用group by时,如果结果为0,则不会显示计数(*)
EN

Stack Overflow用户
提问于 2011-11-12 11:24:11
回答 3查看 96关注 0票数 1

抱歉,我想不出更好的标题了。

所以我有一个数据库,我有一个表'bibitems‘(基本文本)’tag‘(文本归档的标签)和’taglink‘( bibitem和tag之间的关联实体)

因此,在我的页面上,我想显示每个标记,紧跟其后的是该标记下归档的文档数量,所以如果有两个文档在' java‘下,就是java (2)

代码语言:javascript
运行
复制
SELECT
    tags.id,
    naamnl,
    COUNT(*) AS 'count'
FROM
    tags, 
    bibitems, 
    taglinks
WHERE
    bibitems.id=taglinks.item_id 
    AND tag_id=tags.id
GROUP BY
    naamnl

当有文档在某个标签下归档时,这种方法效果很好。但是当有一个到目前为止还没有使用的标签时,它就不会弹出。

在这种情况下,我希望它显示java (0

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-11-12 11:32:15

代码语言:javascript
运行
复制
SELECT tags.id,
       tags.naamnl,
       COUNT(bibitems.id) AS 'count'
  FROM tags
  LEFT
 OUTER
  JOIN taglinks
    ON taglinks.tag_id = tags.id
  LEFT
 OUTER
  JOIN bibitems
    ON bibitems.id = taglinks.item_id
 GROUP
    BY tags.id,
       tags.naamnl
;

代码语言:javascript
运行
复制
SELECT tags.id,
       tags.naamnl,
       ( SELECT COUNT(*)
           FROM bibitems
          WHERE bibitems.id IN
                 ( SELECT taglinks.item_id
                     FROM taglinks
                    WHERE taglinks.tag_id = tags.id
                 )
       )
  FROM tags
 GROUP
    BY tags.id,
       tags.naamnl
;

(你自己选吧。)

票数 2
EN

Stack Overflow用户

发布于 2011-11-12 11:27:33

阅读内部连接和外部连接之间的区别。

代码语言:javascript
运行
复制
SELECT tag.id, naamnl, COUNT(taglink.tag_id) AS 'count' 
FROM tag
LEFT OUTER JOIN taglink ON taglink.tag_id=tag.id
LEFT OUTER JOIN bibitem ON bibitem.id=taglink.item_id 
GROUP BY tag.id, naamnl
票数 1
EN

Stack Overflow用户

发布于 2011-11-12 11:36:16

像这样的东西应该就行了。(这很困难,因为您没有提供完整的表模式。)

代码语言:javascript
运行
复制
SELECT
   i.naamnl,
   COALESCE(t.Count, 0)      AS Count
FROM
   bibitems i
LEFT JOIN
   (
      SELECT
         tag_id,
         COUNT(*) AS Count
      FROM
         taglinks
      GROUP BY
         item_id
   ) t
 ON
    t.tag_id = i.tag_id
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8102322

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档