首页 > 解决方案 > 当子数据表值为空时返回记录

问题描述

我对 SQL 还是很陌生,有点想深入了解这里。

我正在 Excel 中从头开始构建一个工具,该工具利用和访问数据库——虽然基本查询并没有给我带来任何严重的问题——但更复杂的是。

我有四张桌子。用户、问题、投票和评论。

一个用户可以创建很多问题,一个问题可以有很多投票,一个问题也可以有很多评论。

我想创建一个显示问题列表的查询,其中包含每个问题的 vote_id 和 comment_id 计数

即问题 1 有 3 票和 4 条评论,依此类推 - 但是当项目的评论或票数为零时,我的查询根本没有返回任何内容

SELECT 
     users.user_name
,    Count(vote.query_id) AS CountOfquery_id
,    Count(comments.query_id) AS CountOfquery_id1
,    issues.query_id
,    issues.query_raised_by
,    issues.query_raised_date
,    issues.query_summary
,    issues.query_status
,    issues.query_status_date
,    issues.query_detail
,    issues.query_response
,    issues.query_tag1
,    issues.query_tag2
,    issues.query_tag3
,    issues.query_tag4
FROM 
(
    (users INNER JOIN issues 
        ON users.user_id = issues.query_raised_by) 
    INNER JOIN vote 
        ON issues.query_id = vote.query_id) 
    INNER JOIN comments 
        ON issues.query_id = comments.query_id
    GROUP BY 
        users.user_name
        , issues.query_id
        , issues.query_raised_by
        , issues.query_raised_date
        , issues.query_summary
        , issues.query_status
        , issues.query_status_date
        , issues.query_detail
        , issues.query_response
        , issues.query_tag1
        , issues.query_tag2
        , issues.query_tag3
        , issues.query_tag4;

是否有捷径可寻?我是否使问题过于复杂化?

基本上我想在 Excel 中填充一个表格,其中包含问题列表以及每个问题的投票数和评论数,我怎样才能计算工作?

标签: sqlms-access

解决方案


@Dekks 建议使用 Left Join 而不是 Inner Join - 我只是用谷歌搜索了不同连接的作用,现在它更有意义了。

只是想为您发布更新,以防它帮助其他人:)


推荐阅读