sql >> Database teknologi >  >> RDS >> Sqlserver

Er det en dårlig idé at have et 'ELLER' i en INNER JOIN-tilstand?

Denne type JOIN kan ikke optimeres til en HASH JOIN eller en MERGE JOIN .

Det kan udtrykkes som en sammenkædning af to resultatsæt:

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

, hver af dem er dog en equijoin, SQL Server 's optimizer er ikke smart nok til at se det i den forespørgsel, du skrev (selvom de er logisk ækvivalente).



  1. Sådan importeres MySQL-databaser i kommandolinjen

  2. Hvad er Azure Data Studio?

  3. MySQL TIMEDIFF() vs TIMESTAMPDIFF():Hvad er forskellen?

  4. Forskellen mellem FIELD() og FIND_IN_SET() i MySQL