【发布时间】:2018-10-28 16:45:20
【问题描述】:
我有一个 SQL 请求问题,我必须“为已出版 3 本书或更多书籍的出版商列出出版商的名称和出版的书籍数量”。 book 表有出版商名称 [book (isbn, title, authorID, Genre, pubYear, publisher, rrPrice, avgRating)],orderDetails 有数量 [orderDetails (oNo, bookISBN, quantity)]。
我最初尝试过这条 SQL 语句:
SELECT publisher, quantity
FROM book, orderDetails
WHERE ISBN IN (SELECT bookISBN
FROM orderDetails
WHERE quantity > 3);
它返回了 425 行,在将 DISTINCT 添加到发布者的选择后,它返回了 72 个发布者,但是这仍然包含许多具有不同数量值的重复,我不明白为什么要这样做。抱歉,如果这是一个重复的问题,但是我读过的许多问题都更加基础,而且我是 SQL 新手。任何帮助表示赞赏,谢谢。
【问题讨论】:
-
orderDetail 表与此有什么关系?那是关于买了多少书——没有出版。
-
更新您的问题添加适当的数据样本..您的实际结果和预期结果
-
Bad habits to kick : using old-style JOINs - 旧式 逗号分隔的表格列表 样式已替换为 ANSI 中的 proper ANSI
JOIN语法-92 SQL 标准(25 多年前),不鼓励使用它 -
@PatrickArtner 是的,你是对的,回想起来我不知道我要去哪里
-
@marc_s 谢谢,非常正确。这是我们的讲师教我们的方式,她告诉我们这样做。自从我去年发布这个问题以来,我已经与雇主交谈过,他们说我正在就读的大学的课程已经过时了,而且在很多方面仍然生活在过去,我今年真的看到了哈哈