2015-08-03 38 views
2

我有表:選擇多對多表在一個查詢

**RUBRIC:** `RubricID, RubricName` 

**AUTOR:** `AutorID, FirstName, LastName` 

**BOOK:** `BookID, BookName, book_photo` 

**BOOKAUTOR:** `BookID, AutorID` 

**BOOKRUBRIC:** `BookID, RubricID` 

我想在返回BOOKNAME,名字,姓氏,RubricName一個SELECT查詢語句來寫。

我有兩個單獨的查詢,但我不知道如何寫在一個選擇。 這是我的了:

SELECT book.BookName, autor.FirstName, autor.LastName FROM bookautor JOIN book ON book.BookID=bookautor.BookID JOIN autor on autor.AutorID=bookautor.AutorID; 

SELECT rubric.RubricName FROM bookrubric JOIN rubric ON rubric.RubricID=bookrubric.RubricID; 

它的工作不錯,但如何在一個寫選擇?

我嘗試這一點,但它不工作:

SELECT book.BookName, autor.FirstName, autor.LastName, rubric.RubricName FROM bookautor,bookrubric JOIN book ON book.BookID=bookautor.BookID JOIN autor on autor.AutorID=bookautor.AutorID LEFT JOIN rubric ON rubric.RubricID=bookrubric.RubricID; 

它會返回錯誤:

ERROR 1054 (42S22): Unknown column 'bookautor.BookID' in 'on clause' 

回答

0

嘗試此查詢

SELECT book.BookName, autor.FirstName, autor.LastName, rubric.RubricName 
FROM bookautor 
JOIN book ON book.BookID=bookautor.BookID 
JOIN autor on autor.AutorID=bookautor.AutorID 
left join bookrubric on book.BookID=bookrubric.BookID 
LEFT JOIN rubric ON rubric.RubricID=bookrubric.RubricID; 
+0

它的作品,謝謝你,但你可以請如果你能解釋爲什麼'從bookautor'和爲什麼LEFT JOIN? – Nevada