Sql 如何解决错误:无法绑定多部分标识符

Sql 如何解决错误:无法绑定多部分标识符,sql,Sql,我有一个此类查询: Select addMovies.MovieName, GivenBy.UserName, TimeOfReview, Review FROM Users, Reviews, given, addMovies WHERE Reviews.ReviewId = given.ReviewId AND GivenBy.UserName = addMovies.UserName ORDER BY TimeOfReview DESC 其中,各个表的

我有一个此类查询:

    Select addMovies.MovieName, GivenBy.UserName, TimeOfReview, Review 
    FROM Users, Reviews, given, addMovies 
    WHERE Reviews.ReviewId = given.ReviewId AND GivenBy.UserName = addMovies.UserName
    ORDER BY TimeOfReview DESC
其中,各个表的架构的形式为

   Users (UserName, Password, EmailId, Loc, Info)
   Reviews (ReviewId, ReviewRating, Review)
   Given (ReviewId, UserName)
   addMovies (MovieName, UserName)
我试图获得某个特定用户的评论,但它给了我错误:

无法绑定多部分标识符“GivenBy.UserName”。

无法绑定多部分标识符“GivenBy.UserName”。


有谁能告诉我出了什么问题,我能做些什么来纠正这一点吗?

不应该给出用户名吗?Of表名为GivenBy而不是Given?

GivenBy
不在
FROM
子句(
Given
is)中,也没有定义为FROM子句中表的别名。

您没有一个名为GivenBy的表可供选择。可能应该是:

Select addMovies.MovieName, given.UserName, TimeOfReview, Review      
FROM Users, Reviews, given, addMovies      
WHERE Reviews.ReviewId = given.ReviewId AND given.UserName = addMovies.UserName         
ORDER BY TimeOfReview DESC 

不应该给它一个用户名吗?当然,表名是GivenBy而不是Given?表(或表引用)“GivenBy”没有出现在语句的FROM部分。谢谢,我也有一个给定的表,我把它都弄乱了。很抱歉您应该使用显式联接语法来避免意外的笛卡尔联接,例如与用户和评论之间缺少联接。还有,TimeOfReview应该在哪个表中?它在您的任何表模式中都不起作用。它在评论中,我想我删掉了这一部分,感谢您的回复,我在这个查询中使用了内部联接,它工作得更好。感谢您的回复,我在写这个问题时有点慌乱,但我使用内部联接进行了这个查询,它工作得很好,谢谢!谢谢你的回复,我用这个查询来代替我想做的事情,它工作得很好:选择前三名MovieName,TimeOfReview,UserName,GivenBy.ReviewId,Review FROM给定的内部连接GivenBy ON给定的。ReviewId=GivenBy.ReviewId内部连接Reviews ON Reviews.ReviewId=given.ReviewId其中UserName='Name'按时间顺序查看Yep,谢谢你的回复,我把它搞错了,现在我明白了:)