Ce type de JOIN
n'est pas optimisable en HASH JOIN
ou un MERGE JOIN
.
Il peut être exprimé comme une concaténation de deux jeux de résultats :
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
, chacun d'eux étant une équijointure, cependant, SQL Server
L'optimiseur de n'est pas assez intelligent pour le voir dans la requête que vous avez écrite (bien qu'ils soient logiquement équivalents).