#5 shockwave
V MGR_ID je uloženo zaměstnanecké ID šéfa, neboli když číslo ze sloupce MGR_ID vyhledáš ve sloupci ID, tak dostaneš řádku s údaji o šéfovy.
Důležité je pochopit ten podtržený text níže, zkus si zavolat ten dotaz bez té části s where a jukni na výsledek. Nebo kukni na obrázky http://www.w3resource.com/sql/joins/cross-join.php
Pro lepší srozumitelnost si pak tu podmínku můžeme obrátit na: E2.ID=E1.MGR_ID.
A potom, se ta podmínka dá číst nějak takto:
Ze všech kombinací záznamů(řádek) E1,E2 chci takové, kde v E2 bude záznam o šefovy který šéfuje zaměstnanci uvedenému v E1. Ostatní kombinace se zahodí.
P.S. Asi by mělo být tučně zvýrazněno že cross join jako takový, vytváří všechny možné kombinace ze kterých se pak filtruje. Což pro větší než malý počet řádek může být opravdu hoodně kombinací.
Nicméně v závislosti na podmínce si s tím optimalizátor někdy dokáže pohrát a převést to na jiný typ joinu.
Např zde https://msdn.microsoft.com/en-us/library/ms190690.aspx .
Navíc mi přijde že ostatní typy joinů jsou tak nějak čitelnější a lépe vyjadřují co programátor vlastně chtěl a tím jsou i méně náchylné na chyby. No ale nejsem nějak velký "databázista", tak tohle poslední ber s rezervou.