Jak já jsem pochopil, tak čárka je proste nakombinování dvou tabulek každý s každým, kartérský součin, nevím, jak se to označuje u JOINů, protože jich je tolik, že v tom mám zmatek. Filtrace u WHERE pak je opravdu výběr těch dvojic, které mají zůstat. JOIN je úplně jiná operace, takže asi proto to MySQL striktně rozlišuje. Tedy že čárka s WHERE možná dělá to samé, ale není to samé. Z logiky věci pak opravdu vyplývá nutnost definovat prioritu mezi čárkou a JOIN. Zápis (a,b) JOIN ... pak znamená, aplikování JOIN na karterský součin a s b, zatímco a JOIN b JOIN ... znamená sloučení a s b a s nějakoud další tabulkou. Možná to má ale vliv jen na pojmenovávání polí a jejich adresace (tedy nemohu adresovat pole v tabulce, se kterou nespolupracuju).
Ale možná to je jen věc MySQL, neznám standard z hlavy a z databází jsem měl ve škole za 3.
Z hlediska optimalizace by však mezi čárkou + WHERE a JOIN neměl asi být rozdíl, dotaz by se měl vyhodnotit stejně. Ale to záleží na databázovém stroji. |