2017-11-25 45 views
1

我有以下查詢,給了我正確的結果。唯一的問題是它給了我最後兩列的外鍵,因爲它們來自不同的表格。我想獲得這些外鍵代表的描述。MySQL - 如何加入多個查詢?

此查詢返回本書所收到的獎勵書籍的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 
+0

這應該有助於https://stackoverflow.com/questions/6035901/joining-two-select-statements – BARNOWL

+0

也檢查此https://stackoverflow.com/questions/13400726/mysql-combine-two-queries – BARNOWL

回答

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 
+0

你是我的超級英雄:))謝謝你的作品!我早些時候嘗試過類似的東西,但不斷髮現錯IDK。 – HoldTight