sql >> Databasteknik >  >> RDS >> Sqlserver

SQL Server 2005 - Order of Inner Joins

SQL är deklarativ, det vill säga JOIN-ordningen ska inte spela någon roll.

Men det kan i praktiken t.ex. om det är en komplex fråga när optimeraren inte utforskar alla alternativ (vilket i teorin kan ta månader).

Ett annat alternativ är att det är en helt annan fråga om du beställer om och du får olika resultat, men detta är vanligtvis med OUTER JOINs.

Och det kan också vara hur ON-satsen är specificerad. Den måste ändras om du ändrar ordning på FROM-satsen. Såvida du inte använder den äldre (och dåliga) JOIN-in-the-WHERE-klausulen.

Slutligen, om det är ett problem kan du använda parentes för att ändra utvärderingsordningen för att göra dina avsikter tydliga, till exempel filtrera på en stor tabell först för att generera en härledd tabell.



  1. Hur uppdaterar man id-uppsättning från 1?

  2. Hur konverterar man en byte[] till datetime i C#?

  3. SubSonic genererar inte MySql främmande nyckeltabeller

  4. Hur man beräknar skillnaden mellan två tidsstämplar i PostgreSQL