只使用一个基本的SQL程序来运行一些小东西,所以答案应该非常简单和小巧。但是有几个表的数据库被标记为:
使用fAuthorID和fAuthorName的tAuthors,接下来我有tBooks,其中包含fAuthorID,fPubID等等(想想只会使用其中一个)。并且tPublishers包含fPubID和fPubName。
所以我一直在努力列出所有拥有ID号为12的出版商出版图书的作者的姓名;按字母顺序列出作者姓名。我把字母部分缩小了,但似乎可以得到正确的作者名字。这是我得到的,但它只是拉了一个作者,我相信这里总共有7个作者,附有ID号12。
SELECT `fAuthorName`, `fAuthorID`
FROM `tAuthors`
WHERE `fAuthorID` IN (
SELECT `fPubID`
FROM `tPublishers`
WHERE `fPubID` = 12
)
ORDER BY `fAuthorName` ASC;
答案 0 :(得分:2)
可能更容易进行加入。作者表通过作者ID连接到Books表,books表通过发布者ID连接到publishers表。一旦它们全部加入,您只需按照pub id和sort进行过滤。
SELECT `a.fAuthorName`, `a.fAuthorID`
FROM `tAuthors` a
JOIN `tBooks` b ON (a.fAuthorID = b.fAuthorID )
JOIN `tPublishers` p ON (b.fPubID = p.fPubID)
WHERE `p.fPubID` = 12
ORDER BY `a.fAuthorName` ASC;
答案 1 :(得分:0)
您可以使用tBooks代替tPublishers进行以下查询:
SELECT `fAuthorName`, `fAuthorID`
FROM `tAuthors`
WHERE `fAuthorID` IN (
SELECT `fAuthorID`
FROM `tBooks`
WHERE `fPubID` = 12
)
ORDER BY `fAuthorName` ASC;