我正在尝试更新客户端的查询,以便在MS-SQL Server 2014数据库上添加更多功能。该查询是由其他人编写的,目前正在运行。
查询的FROM
部分包含以下内容:
FROM Project Phs
LEFT JOIN (SELECT * FROM Stage WHERE Status >=5 ) SUB
ON pmsProject = phs.prjPhase
LEFT JOIN InvoiceGroup ON phs.prjInvoiceGroup = igKey
LEFT JOIN Vec ON vecKey = igClient
LEFT JOIN Project Prj ON Prj.prjkey = Phs.prjproject
LEFT JOIN Contact ON prj.prjClientContact1 = cntkey
LEFT JOIN Project L2 ON L2.prjkey = phs.prjPhaseLevel2
第2行的SUB
做什么?
我在SUB
文档中找不到JOIN
,SUB
不是T-SQL中的保留字,SUB
没有出现在其他地方(300行)查询。感谢。
答案 0 :(得分:3)
Sub只不过是一个表别名,可以从中引用阶段表中的列。
联接可以写成sub.pmsProject=phs.prjphase
。
它类似于项目的phs和项目的prj。
舞台表中的所有字段都可以作为sub.fieldname引用。当表具有相同名称的字段时,这是必要的,因此引擎明确知道要从哪个表访问数据。
别名不仅使代码更容易,而且使代码更容易阅读,而不是长时间绘制表名。
答案 1 :(得分:3)
这只是(SELECT * FROM Stage WHERE Status >=5 )
子查询的别名,以便稍后可以引用它。我没有在您提供的查询中的任何其他地方看到它被引用,但您可能已经删除了包含它的部分,或者它可能已被删除。