【发布时间】:2019-08-03 02:30:24
【问题描述】:
谁能解释这里发生了什么?该查询在第二个左连接期间使用“IN”条件而不是“ON”条件。 "IN" 条件在联接中有什么作用?
SELECT
*
FROM
PlacementDetail_Temp PDT
LEFT JOIN
dbo.[Authorization] AUTH
on AUTH.PlacementDetailID = PDT.PlacementDetailID
and AUTH.PayorID = @PayorID
LEFT JOIN
dbo.Provider SP_as_PR
on SP_as_PR.ProviderID in
(
Select
PR.ProviderID
from
dbo.Provider PR
INNER JOIN
dbo.ProviderSponsor PS
ON PR.ProviderID = PS.ProviderID
and PS.SponsorID = AUTH.SponsorID
where
IsSponsor = 'True'
)
【问题讨论】:
-
on条件可以包含任何布尔条件,包括子查询。 -
欢迎蒂鲁文加丹! “in”不是连接,是子查询。
-
欢迎来到 StackOverflow。您的问题很少见:1)不要使用大写锁定,它非常具有攻击性。 2)请正确格式化您的查询,一行不在代码块中,并且您有无用的空格 3)突出显示相关子句,以便读者无需找出您在说哪个
IN。最后,SP_as_PR.PRroviderID in (...),请查看w3schools.com/Sql/sql_in.asp -
IsSponsor属于哪个表?
标签: sql sql-server sql-server-2008 join left-join