sql >> Databáze >  >> RDS >> Sqlserver

SQL Server 2005 - Pořadí vnitřních spojení

SQL je deklarativní, to znamená, že na pořadí JOIN by nemělo záležet.

V praxi však může, řekněme, jde-li o složitý dotaz, kdy optimalizátor neprozkoumá všechny možnosti (což by teoreticky mohlo trvat měsíce).

Další možností je, že je to velmi odlišný dotaz, pokud změníte pořadí a získáte jiné výsledky, ale to je obvykle s OUTER JOINs.

Může to být také způsob, jakým je specifikována klauzule ON. Musí se změnit, pokud změníte pořadí klauzule FROM. Pokud nepoužíváte starší (a špatnou) klauzuli JOIN-in-the-WHERE.

A konečně, pokud jde o problém, můžete použít závorky ke změně pořadí hodnocení, aby byly vaše záměry jasné, řekněme nejprve filtrovat na velké tabulce a vygenerovat odvozenou tabulku.



  1. AWS Aurora MySQL bez serveru:jak se připojit z MySQL Workbench

  2. Jak mohu vybrat nejdelší textové pole při použití GROUP BY v mysql, a la MAX()?

  3. spouští vpřed křížové vydání v R12.2

  4. Ekvivalent Oracle GROUP_CONCAT().