【发布时间】:2022-01-04 05:44:37
【问题描述】:
我有两个名为Books 和Co-author 的表。我想加入他们以使表格显示在“所需的输出”下。我是 SQL 新手,我正在努力加入我所做的两个查询...
书籍:
| ISBN | title | author |
|---|---|---|
| 1111 | Book1 | author1 |
| 2222 | Book2 | author2 |
| 3333 | Book3 | |
| 4444 | Book4 | author3 |
合著者:
| id | author | book(isbn) |
|---|---|---|
| 1 | author_x | 4444 |
| 2 | author_y | 1111 |
| 3 | author_z | 2222 |
| 4 | author_w | 4444 |
期望的输出:
| title | has_author | count_co_author |
|---|---|---|
| Book1 | 1 | 1 |
| Book2 | 1 | 1 |
| Book3 | 0 | 0 |
| Book4 | 1 | 2 |
我有以下疑问:
SELECT b.title, count(c.book)
FROM Books b
LEFT JOIN Coauthor c ON b.isbn = c.book
GROUP BY b.title
返回列count_co-author。
另一个查询列has_author:
SELECT
b.title,
CASE
WHEN b.author IS NULL
THEN 0
ELSE 1
END AS 'Has author'
FROM Books b
如何组合它们?
【问题讨论】:
-
请use text, not images/links, for text--including tables & ERDs。转述或引用其他文本。只提供您需要的东西并将其与您的问题联系起来。仅将图像用于无法表达为文本或增强文本的内容。在图像中包含图例/键和说明。在给出业务关系(船舶)/关联或表(基础或查询结果)时,说明其中的一行根据其列值说明了业务情况。 Re SQL & relational querying
-
请在代码问题中给出minimal reproducible example--剪切&粘贴&运行代码;具有期望和实际输出的示例输入(包括逐字错误消息);标签和版本;明确的规范和解释。对于包含最少代码的错误,您可以给出的代码是您显示的代码可以通过您显示的代码扩展为不正常。 (调试基础。)对于 SQL 包括 DDL 和表格初始化代码。当你得到一个你不期望的结果时,暂停你的总体目标,切到第一个具有意外结果的子表达式并说出你的期望和原因,并通过文档证明是合理的。 How to AskHelp center
-
您使用的是什么 DBMS?您应该始终使用 DBMS 标记您的 SQL 请求,以便只获得适合您的答案。