[英]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.