2017-08-06 62 views
0

我是新來的,所以我知道我錯過了一些簡單的東西,但是我弄不明白。我試圖將3個表連在一起,並且我已經使用了2個連接,但是當在同一個查詢中組合時,最終會出現錯誤。連接3個表時出錯php/sql

我的3個表是:

TBL_Authors

Author_ID 
Author_Name 

TBL_Publishers

Publisher_ID 
Publisher_Name 

TBL_Books

Title 
Author_ID 
Publisher_ID 
ISBN 
Genre 
Price 
Cost 
Rating 

我有什麼不工作:

$query = 'SELECT * FROM TBL_PUBLISHERS 
       JOIN TBL_BOOKS ON TBL_PUBLISHERS.Publisher_ID = TBL_BOOKS.Publisher_ID 

       SELECT * FROM TBL_AUTHORS 
       JOIN TBL_BOOKS ON TBL_AUTHORS.Author_ID = TBL_BOOKS.Author_ID 

       ORDER BY TBL_BOOKS.Title ASC;'; 
+1

這些是兩個查詢 – GurV

回答

0

此查詢假設每本書都已發佈。

SELECT 
    * 
FROM 
    TBL_Books b 
    INNER JOIN TBL_Publishers p ON b.Publisher_ID = p.Publisher_ID 
    INNER JOIN TBL_Authors a ON b.Author_ID = a.Author_ID 
ORDER BY 
    b.Title 

本書將始終有作者,但不一定是發佈者,如果它沒有發佈。如果您需要獲取所有圖書,無論是否已發佈,您都必須將INNER加入TBL_Publishers更改爲LEFT

+0

我不會質疑它,因爲它最終奏效,我無法弄清楚我的拼寫錯誤在哪裏。我已經嘗試過你曾經做過的一點,但沒有奏效。我剛剛複製了你的代碼,它不起作用。然後我再次拼湊起來,它工作。最終它的工作原理和我所能想到的是我有一個我一直想念的地方。謝謝! – amblin

0

此查詢將顯示書籍,出版商名稱,作者姓名的所有詳細信息的結果。

SELECT 
t1.* , t2.Publisher_Name , t3.Author_Name 
FROM 
TBL_Books as t1 
INNER JOIN TBL_Publishers as t2 ON t1.Publisher_ID = t2.Publisher_ID 
INNER JOIN TBL_Authors as t3 ON t1.Author_ID = t2.Author_ID 
ORDER BY 
t1.Title 

如果此查詢可幫助您,請選中此項並更新。