使用join的3个表的sql server select语句

时间:2014-04-24 06:59:06

标签: sql sql-server

下面是我的问题的链接 帮我找到解决方案。

http://forums.asp.net/post/5682629.aspx

enter image description here

3 个答案:

答案 0 :(得分:0)

您有四张桌子,而您只加入了三张桌子。 您正在尝试使用themes表中的列名,但尚未将其定义为FROM子句。

您需要始终为n-1表格指定n加入条件。

添加一个连接条件,您的查询将无错执行

答案 1 :(得分:0)

这个查询怎么样:

select top 3 Package_Title, DurationInDays,Package_Image_1, Adult_Price , 
    STUFF((Select themes.theme + ',' From package_theme 
        inner join themes on themeid = package_theme.theme
        Where package_theme.package = packages.Package_ID FOR XML PATH('')),1,1,'')     As theme
from packages 
inner join  rates on rates.package = packages.Package_ID 

答案 2 :(得分:0)

我认为此查询会对您有所帮助。但我认为您可能需要更改表名,因为您的查询中也存在一些表名冲突。改进表名格式和列名。您的查询的问题是您没有加入主题表,而您正试图访问其列。

select top 3 A.Package_Title, A.DurationInDays, Package_Image_1,
B.Adult_Price,D.Theme from packages A 
inner join rates B on B.Package = A.Package_ID 
inner join package_theme C on C.package=A.Package_ID
inner join themes D on D.Theme_ID = C.theme