Questo tipo di JOIN
non è ottimizzabile per un HASH JOIN
o un MERGE JOIN
.
Può essere espresso come una concatenazione di due set di risultati:
SELECT *
FROM maintable m
JOIN othertable o
ON o.parentId = m.id
UNION
SELECT *
FROM maintable m
JOIN othertable o
ON o.id = m.parentId
, ognuno dei quali è un equijoin, tuttavia, SQL Server
L'ottimizzatore non è abbastanza intelligente da vederlo nella query che hai scritto (sebbene siano logicamente equivalenti).