2012-12-17 57 views
-1

我有以下即是工作的罰款在TSQLMysql的多個內連接不工作

SELECT  
    shoppingcart_1.price, shoppingcart_1.stid, course.isbn, 
    book.BookTitle, course.Course_ID, schedule.stid AS Expr1 
FROM   
    book 
INNER JOIN 
    shoppingcart AS shoppingcart_1 
INNER JOIN 
    schedule ON shoppingcart_1.cid = schedule.course_ID 
INNER JOIN 
    course ON schedule.course_ID = course.Course_ID 
    ON book.isbn = course.isbn 
WHERE  
    (shoppingcart_1.stid = '20070004') 

但是當我在MySQL運行它在線顯示錯誤查詢

INNER JOIN course ON schedule.course_ID = course.Course_ID ON book.isbn = course.isbn 

錯誤文本是

1064 - 您的SQL語法錯誤;檢查對應於您的MySQL服務器版本的正確的語法使用 鄰近 'ON book.isbn = course.isbn WHERE(shoppingcart_1.stid = '20070004')LIMIT 0' 在列6

手動我正在寫第一次在MySQL查詢,請幫助

+1

你錯過了'ON'爲你加入'shoppingcart' – Shmiddty

+0

我必須懷疑,你甚至試圖找出什麼是錯的? – iamkrillin

+0

我已經看過很多次了,在閱讀您的評論之後,我再次將此查詢與sql server查詢進行了比較。但它正在SQL服務器上工作 – Tanveer

回答

1

似乎你有你的加入有點混。我試圖清理它。看看這是否適合你

SELECT shoppingcart_1.price, shoppingcart_1.stid, course.isbn, book.BookTitle, course.Course_ID, schedule.stid AS Expr1 
FROM book 
INNER JOIN course ON book.isbn = course.isbn 
INNER JOIN schedule ON course.Course_ID = schedule.course_ID 
INNER JOIN shoppingcart AS shoppingcart_1 ON schedule.course_ID = shoppingcart_1.cid 
WHERE shoppingcart_1.stid = '20070004' 

請注意我如何加入書本課程,然後安排課程,然後安排到shoppingcart。然後使用WHERE子句來指定其他條件。

+0

感謝@shredder,您的建議查詢沒有任何反應。但它也從Shoppingcart表中提取其他記錄,不僅是針對'20070004'。請幫助我如何解決它? – Tanveer

+0

我只注意到我在where子句中重複了一個連接。對不起,看看它如何與這個編輯。 –

+0

這是返回相同的結果。 Shoppingcart是一個轉接表,我必須從相關表格中加載其他詳細信息以顯示 – Tanveer