sql >> Databasteknik >  >> RDS >> Sqlserver

Är det en dålig idé att ha ett "ELLER" i ett INNER JOIN-tillstånd?

Den här typen av JOIN kan inte optimeras till en HASH JOIN eller en MERGE JOIN .

Det kan uttryckas som en sammanlänkning av två resultatuppsättningar:

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

, var och en av dem är en equijoin, dock SQL Server s optimizer är inte smart nog att se den i frågan du skrev (även om de är logiskt likvärdiga).



  1. PL/SQL otillräckliga privilegier inom en fråga manuellt möjligt

  2. Hur ansluter jag till MySQL Database?

  3. SQL Server - anslut rader till en kommaseparerad lista

  4. Varför fungerar inte min t-sql left join?