Ten rodzaj JOIN
nie można zoptymalizować do HASH JOIN
lub MERGE JOIN
.
Można to wyrazić jako połączenie dwóch zestawów wyników:
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
, przy czym każdy z nich jest equijoin, jednak SQL Server
Optymalizator nie jest wystarczająco sprytny, aby zobaczyć to w zapytaniu, które napisałeś (chociaż są one logicznie równoważne).