gpt4 book ai didi

Mysql Count with Inner join of two tables, Average Join

转载 作者:可可西里 更新时间:2023-11-01 06:53:21 27 4
gpt4 key购买 nike

我很想连接两个表,但似乎无法正确连接,结构如下所示。

表 1(成员)[用户登录 |姓名]

表 2(文章)[艺术编号 |作家 |内容]Article.writer 指向 Members.UserLogin

我想用尽可能少的代码显示已注册 UserLogins 的整个列表,以及他们可能写了多少文章的计数,​​或者如果他们没有写过任何文章,他们也应该在列表中.

我想要什么:[用户登录 |名称 |文章撰写]

到目前为止我得到的是:

SELECT UserLogin, Name, Writer, count(*)
FROM Article
INNER JOIN Members on Writer=UserLogin
GROUP BY UserLogin;

SELECT UserLogin, Name, count(Writer)
FROM Article
LEFT JOIN Members ON UserLogin = Writer
GROUP BY 1;

它们都列出了 mysql 中的所有内容,但是它们都没有包含那些从未写过任何文章的人的用户登录名和姓名。你们能给我指出正确的方向吗?我了解查询的问题,但不知道如何解决。

我在这个论坛上发现了类似的问题,但我没有从他们那里得到任何解决方案。可能是语言障碍或只是缺乏基本的 mysql 知识。

最佳答案

可以使用子查询

SELECT m.UserLogin, 
m.Name,
(SELECT COUNT(*)
FROM Articles
WHERE Writer = m.UserLogin) ArticlesWritten
FROM Members m

示例输出:

| USERLOGIN |  NAME | ARTICLESWRITTEN |
---------------------------------------
| user1 | Jhon | 2 |
| user2 | Helen | 0 |

这是 SQLFiddle

关于Mysql Count with Inner join of two tables, Average Join,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16806837/

27 4 0