2015-02-11 25 views
-3

把这个示例代码...使用FUNCTION时,哪个JOIN正确使用?

SELECT Persons.name, 
     getCarModelID(Persons.ID) AS car_model -- < A function 

FROM Persons 
     LEFT OUTER JOIN Cars ON getCarModelID(Persons.ID) = Cars.ID 

在上面的示例,是正确使用 “LEFT OUTER JOIN”?

+0

使用左外连接或任何其他种类的加盟完全取决于你想要什么样的数据。这完全是主观的。 – 2015-02-11 08:45:16

+2

这取决于预期的结果 – 2015-02-11 08:45:18

回答

0

如果您打算加入一个带有函数的表格,那么您将需要使用T-SQL“Outer Apply”运算符。与左边的Join类似,您可以使用上述内容。

连接只能连接两个或多个表,但不能连接具有函数的表。 您可以learn using Apply from this link.

正确的代码如下:

SELECT Persons.name, 
     getCarModelID(Persons.ID) AS car_model -- < A function 

FROM Persons 
     OUTER APPLY Cars ON getCarModelID(Persons.ID) = Cars.ID;