sql >> Database >  >> RDS >> Sqlserver

Is het hebben van een 'OF' in een INNER JOIN-conditie een slecht idee?

Dit soort JOIN kan niet worden geoptimaliseerd tot een HASH JOIN of een MERGE JOIN .

Het kan worden uitgedrukt als een aaneenschakeling van twee resultatensets:

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

, elk van hen is echter een equijoin, SQL Server 's optimizer is niet slim genoeg om het te zien in de query die je hebt geschreven (hoewel ze logisch equivalent zijn).



  1. sql-query om verschillen tussen twee tabellen te retourneren

  2. MySQL migreren naar PostgreSQL op AWS RDS, deel 3

  3. django.db.utils.ProgrammingError:relatie bestaat al

  4. MySQL wiskundige functies (volledige lijst)