Zase Jirsak meles o vecech o kterych vis kulovy? Ten select se chova uplne jinak. Kdyz se podminka napise rovnou do join, tak se spojovani provadi uz nad omezenym poctem zaznamu, vs where, kde se nejdriv spoji vsechno a teprve pak se to omezuje, coz bude v drtivy vetsine pripadu radove pomalejsi.
Děkuji za potvrzení. Ano, v normální SQL databázi se to chová tak, že způsob zápisu dotazu vůbec nemá vliv na to, jak dotaz databáze vyhodnotí. To, jak přesně se dotaz provede – v jakém pořadí se budou načítat data pro jednotlivé tabulky, zda se použijí indexy nebo fullscan atd. – určuje plánovač dotazu. Je to asi ta největší přednost SQL databází a důvod, proč jsou tak úspěšné – databázový stroj tu optimalizaci dotazu v drtivé většině případů zvládá mnohem lépe, než člověk.
Jak už jsem psal,
JOIN je jen modernější zápis podmínek pro spojování tabulek. Ve skutečnosti reprezentace dotazu pro plánovač už mezi zápisem s JOIN a s WHERE nerozlišuje, je to opravdu jen rozdíl v zápisu.
Samozřejmě se to týká pořádných SQL databází, pokud si někdo napíše nějakou samo-domo databázi, která nemá žádný plánovač dotazů a jenom tupě rovnou z parseru načítá data, tam to na pořadí zápisu záviset může.