2015-05-06 192 views
0

有2個表: - 主題 - 職位SQL查詢雙SUM語句

文章有 「等級」 功能:

topic 1, post 1, rating 2 
topic 1, post 1, rating 2 
topic 1, post 2, rating 1 

主題有 「意見」 的特點:

topic 1, views 5 
topic 1, views 3 

我想獲得所有主題的帖子評分總和以及所有主題的總視圖。 我的 SQL:

​​

它返回沒有正確的價值觀,我認爲 - 通過加入的原因 - 他們需要分組2倍。

我能做些什麼來解決?

後加入閱讀題型:

SELECT 
    t1.`forum_id`, 
    t1.`topic_id`, 
    SUM(t1.`rating`) AS rating, 
    t3.`views` AS views 
FROM 
    `forum_ratings_posts` t1 
LEFT JOIN (
    SELECT 
     SUM(t2.`views`) AS views, 
     t2.`topic_id` 
    FROM 
     `forum_ratings_topics` t2 
    GROUP BY 
     t2.`topic_id` 
) t3 ON t1.`topic_id` = t3.`topic_id` 
GROUP BY 
    t1.`topic_id` 

回答

1

看看這會有所幫助。此方法在派生表上使用LEFT JOIN,並在該派生表中執行SUMMING for topics表。 LEFT JOIN將確保您擁有帖子表中的條目,而不管主題表中是否存在相應的條目。如果您需要更多信息,請與我們聯繫。

SELECT 
    t1.forum_id, 
    t1.topic_id, 
    SUM(t1.rating), 
    temp.t2_sum 
FROM 
    posts t1 
LEFT JOIN 
    (SELECT SUM(views) AS t2_sum, topic_id FROM topics GROUP BY 
topic_id) AS temp 
ON t1.topic_id = temp.topic_id 
GROUP BY 
t1.topic_id 
+0

現在就試一試 – gzhegow

+0

我對代碼做了細微的修改。請嘗試更新的查詢併發布錯誤消息,如果這不起作用。 – Maximus2012

+0

它的工作原理!大! – gzhegow