Obecně řečeno, INNER JOIN a EXISTS jsou různé věci.
První vrací duplikáty a sloupce z obou tabulek, druhá vrací jeden záznam a jako predikát vrací záznamy pouze z jedné tabulky.
Pokud provedete vnitřní spojení na UNIQUE vykazují stejný výkon.
Pokud provedete vnitřní spojení u sady záznamů pomocí DISTINCT použito (pro odstranění duplikátů), EXISTS je obvykle rychlejší.
IN a EXISTS klauzule (s ekvijoinovou korelací) obvykle používají jednu z několika SEMI JOIN algoritmy, které jsou obvykle efektivnější než DISTINCT na jednom ze stolů.
Viz tento článek na mém blogu:
- IN vs. JOIN vs. EXISTS