子数据表值为空时返回记录

时间:2018-08-01 13:33:32

标签: sql ms-access

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

我正在Excel中从头开始构建一个使用和访问数据库的工具-尽管基本查询不会给我带来任何严重的问题-而是更复杂的问题。

我有四个桌子。用户,问题,投票和评论。

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

我想创建一个显示问题列表的查询,并为每个问题的表决数和评论数计数

即问题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中的表格中填充问题列表以及每个问题的投票和评论数,如何计算工作量?

2 个答案:

答案 0 :(得分:0)

这样做:

COUNT(vote.query_id) OVER (PARTITION BY users.user_name)
COUNT(comments.query_id) OVER (PARTITION BY users.user_name)

并更改组语句以说group by users.user_name只会给您带来您想要的结果?

答案 1 :(得分:0)

@Dekks建议使用左连接而不是内部连接-我只是在谷歌上搜索了不同的连接的作用,现在这变得更有意义了。

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