簡體   English   中英

SQL獲取查詢中所有用戶活動的總和

[英]SQL get all users activity summed in a query

我想從用戶表中獲取所有用戶,並在文章表中匯總所有用戶寫的所有文章長度的列

基本上這是一個代碼,如果我選擇為每個循環運行一個SQL查詢(不好)

SELECT * FROM users
--loop
SELECT SUM(wordcount) AS totalwordcount FROM articles WHERE writer_id = user_id

我已經使用了LEFT JOIN,但是我只能在商品表中獲得帶有user_id的用戶列表

SELECT users.name, SUM(article.wordcount) AS xox FROM users LEFT JOIN article ON users.id_usera = article.writer_id WHERE article.editor_status = 'finished' ORDER BY users.id_usera 

通過此查詢,我只獲得在文章表中存在其user_id的用戶,但我希望列出所有用戶,如果該用戶沒有在其ID中存在的文章,則返回NULL /空

您需要GROUP BY

SELECT u.name, SUM(a.wordcount) AS xox
FROM users u LEFT JOIN
     article a
     ON u.id_usera = a.writer_id AND
        a.editor_status = 'finished' 
GROUP BY u.name;
SELECT users.name, SUM(article.wordcount) AS TotalWordCount 
FROM users 
LEFT JOIN article ON users.id_usera = article.writer_id 
WHERE article.editor_status = 'finished' 
GROUP BY article.writer_id
ORDER BY users.id_usera

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM