MySQL - 如何加入多个查询?

时间:2017-11-25 21:10:05

标签: mysql sql

我有以下查询,它给了我正确的结果。唯一的问题是它为它返回的最后两列提供了外键,因为它们来自不同的表。我想得到这些外键所代表的描述。

此查询返回图书名称,图书收到的奖励的FK以及授予该奖项的组织的FK。

SELECT b.booktitle, ba.awbodyid, ba.awardid FROM Book b 
JOIN BookAward ba ON b.bookid = ba.bookid 
WHERE ba.bookid=4

如何在上述查询中返回奖励的实际名称和提供奖励的组织的实际名称?

我创建了以下两个能够返回这些结果的查询,但我需要帮助将这些查询添加到上面的查询中。

以下查询将返回图书收到的所有奖励:

SELECT a.awardname FROM BookAward f 
JOIN Award a ON f.awardid = a.awardid
WHERE f.bookid=4

以下查询将返回授予该书奖励的组织:

SELECT DISTINCT a.awardbody FROM BookAward f 
JOIN AwardingBody a ON f. awbodyid = a. awbodyid
WHERE f.bookid=4

1 个答案:

答案 0 :(得分:2)

这样的事情:

SELECT b.booktitle, a.awardname, ab.awardbody FROM Book b 
JOIN BookAward ba ON b.bookid = ba.bookid
JOIN Award a ON ba.awardid = a.awardid
JOIN AwardingBody ab ON ba.awbodyid = ab.awbodyid
WHERE ba.bookid=4
相关问题