下午好 -
我正在努力解决SSMS问题。 (SQL Server 2008)
我需要加入三张桌子。基本上我需要表1和表3中的数据,但需要使用表2将所有数据链接在一起。
表1: 主人ID, 名称
表2: 主人ID, 版本ID
表3: 版本ID, 呼叫
基本上我正在尝试查看表3中的所有行,并包含表1中版本的名称。我正在做的一切,就是给我一个“多部分标识符”xxx“无法绑定。 “
我已经尝试过搜索这些类型的连接,而我对此非常陌生 - 对不起......我无法嵌入我想要完成的截图;但它让我给我的截图链接。我希望有人可以帮助我加入这个联盟,然后灯泡会在我的大脑中继续。提前谢谢。
答案 0 :(得分:0)
看起来很简单,问题是什么?
ANSI 92使用inner join
和on
语法进行连接。使用似乎是表格的键。
SELECT T1.Name, T3.VersionId, T3.Calls
FROM Table1 T1
INNER JOIN table2 T2
on T1.MasterID = T2.MasterID
INNER JOIN table3 T3
on T2.VersionId = T3.VersionID
T1,T2和T3是表别名。
如果表3包含不在table2中的版本的记录,则可能right
加入而不是inner
;并且您对table3中所有记录的陈述是正确的。然后需要一个右连接而不是一个内部;但在这种情况下,有些记录没有名字!
答案 1 :(得分:0)
非常简单:
SELECT T3.VersionId, T3.calls, T1.name
FROM Table3 T3
LEFT JOIN TABLE2 T2 ON T3.VERSIONID=T2.VERSIONID
LEFT JOIN TABLE1 T1 ON T1.MASTERID=T2.MASTERID