SQL获取查询中汇总的所有用户活动

问题描述 投票:0回答:2

我希望从用户表中获取所有用户,并在文章表中列出所有用户编写的所有文章长度的列

基本上如果我选择为每个循环运行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的用户,但我希望列出所有用户并返回NULL /空如果用户没有他/她的id存在的文章

php mysql sql
2个回答
1
投票

你需要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;

0
投票
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
© www.soinside.com 2019 - 2024. All rights reserved.