【发布时间】:2022-01-05 02:25:47
【问题描述】:
我想将两个非常简单的计数查询合并为一个。
为了澄清情况,我将添加我得到的表格:
书
| isbn | author |
|---|---|
| 1111 | GB |
| 2222 | DC |
| 3333 | RL |
作者
| code | Name |
|---|---|
| GB | George B. |
| KL | Kyle L. |
| DC | Donald C. |
| RL | Roland L. |
共同作者
| name | isbn |
|---|---|
| KL | 1111 |
| GB | 2222 |
| GB | 3333 |
我提出的问题是: 查询1:
SELECT a.name, count(*)
FROM coauthor c INNER JOIN author a ON c.name = a.code
GROUP BY a.name
给予:
| name | Count(*) |
|---|---|
| KL | 1 |
| GB | 2 |
查询 2:
SELECT a.name, count(*)
FROM author a INNER JOIN book b ON a.code = b.author
GROUP BY a.name
给予:
| name | count(*) |
|---|---|
| GB | 1 |
| DC | 1 |
| RL | 1 |
所以我想得到:
| name | count(*) |
|---|---|
| George B. | 3 |
| Donald C. | 1 |
| Roland L. | 1 |
| Kyle L. | 1 |
我一直在网上搜索,但我想我不知道从哪里开始。
【问题讨论】:
-
使用
UNION ALL,有关如何使用它的说明,请参阅:google.com/search?q=union+all。 -
您的查询与表的列不匹配。请更正。
标签: sql group-by count left-join inner-join