gpt4 book ai didi

JOINing 时 MySQL COUNT 值发生变化

转载 作者:行者123 更新时间:2023-11-29 22:09:31 25 4
gpt4 key购买 nike

我有一个章节表,其中包含大约 17 个条目,全部属于一本书。

chapters:
--------------------------
| id | book_id | content |
--------------------------
| 1 | 1 | ... |
| 2 | 1 | ... |
| 3 | 1 | ... |
| 4 | 1 | ... |
| 5 | 1 | ... |
| ... | 1 | ... |
--------------------------

还有一个图书馆表,它将用户链接到他们保存的书籍:

library:
----------------
| user | book_id |
----------------
| 1 | 1 |
| 1 | 2 |
| 2 | 1 |
| 3 | 1 |
| 4 | 1 |
| ... | 1 |
----------------

我可以使用:

SELECT COUNT(*) FROM chapters WHERE book_id = 1

表格正确输出 17,因为第一本书有 17 章

如果我这样做:

SELECT COUNT(*) FROM library WHERE book_id = 1

我还得到了正确的结果 5,因为 5 个用户已将图书 1 添加到他们的图书馆。

但是,我似乎无法使用 JOIN 将两个查询组合在一起。我想要 SQL 代码,它将输出如下内容:

output:
-----------------------------
| book | chapters | readers |
-----------------------------
| 1 | 17 | 5 |
-----------------------------

最佳答案

select c.book_id, count(c.id) as chapters, count(l.user) as readers
from chapters c
join library l on l.book_id = c.book_id
where c.book_id = 1
group by c.book_id

关于JOINing 时 MySQL COUNT 值发生变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31820198/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com