2012-12-17 56 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