我对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中的表格中填充问题列表以及每个问题的投票和评论数,如何计算工作量?
答案 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建议使用左连接而不是内部连接-我只是在谷歌上搜索了不同的连接的作用,现在这变得更有意义了。
只是想为您发布更新,以防它对其他人有所帮助:)