LEFT JOIN(从其中选择>来自另一个JOIN'ed表的值<)

时间:2015-11-05 10:20:43

标签: sql sql-server join where

我正在尝试在表上执行多个左连接,以便检索一行信息。

IsFileIncluded(equipment, excluded setups, actual setup, actual equipment)

我们的想法是从'ti'获取所有信息,并且只有一行来自'p'表,其中MC等于ti.MC. 'p'表包含数百行具有相同MC的行,但可以假设所有其他字段具有相同的值(GH,GC,DI,DC)

标有星星的部分是我遇到问题的部分。我认为这是因为,由于错误“ti.MC无法绑定说”,“ti”的连接尚未初始化,因此无法在另一个连接的选择中使用。

有什么方法可以让这件事发生吗?我目前的工作方式是看看我是否可以使用嵌套连接或可能设置一个变量来使用,但两者目前都没有成效。

由于

1 个答案:

答案 0 :(得分:1)

Sql Server中,APPLY运算符已完成。像这样:

FROM THeaders th
LEFT JOIN TItems ti ON th.rtid = ti.rtid
OUTER APPLY (SELECT TOP 1 MC, GH, GC, DI, DC FROM Prod WHERE ti.MC = MC) oa