【发布时间】:2013-02-10 00:13:57
【问题描述】:
这些是我拥有的三个表格的简化版本:
Books
BookID (PK)
AuthorID
...
Purchases
PurchaseID (PK)
CustomerID
BookID
Date
...
Authors
AuthorID (PK)
Name
...
我希望表格之间的联系是不言自明的,但我将给出一个简短的解释:作者与书籍之间以及书籍与购买之间存在一对多的关系。
现在我想从给定作者所写且已购买超过 X 次的 Books 中选择一本书。
我可以查询给定作者的书籍:
SELECT * FROM Books where AuthorID = 'some author';
但我只想要那些购买次数超过 X 次的书。
SELECT BookID from Purchases WHERE ...(where the occurance of BookID>X)
我不知道如何完成这个查询,或者即使有可能。然后我想将它与第一个查询结合起来,如果可能的话,使用 INNER JOIN。
我愿意接受设计存在缺陷。也许购买表应该简单地将 BookID 作为 PK 并有一个购买数量的字段。
【问题讨论】:
-
你的设计没有缺陷。如果您按照您提到的那样修改购买表。
标签: sql