Sont le SQL concepts JOINTURE EXTERNE GAUCHE et OÙ n'EXISTE PAS fondamentalement les mêmes?

Quoi la différence entre l'utilisation d'un LEFT OUTER JOIN, plutôt qu'une sous-requête qui commence avec une WHERE NOT EXISTS (...)?

Il y a tellement de différences avec ces concepts, mais pour commencer une sous-requête exécutera une par ligne de la table primaire, un LEFT JOIN ne sera pas....
Dans SQL Server où n'existe pas est implémenté comme un anti semi join et peut utiliser hachage, de fusion, ou de boucles imbriquées. Exactement le même physique opérateur de jointure choix LOJ, mais potentiellement plus efficace, évite de dupes.
J'ai compris la question comme une sous-requête sur la SELECT, quelque chose comme SELECT a, (SELECT b FROM table WHERE NOT EXISTS ...), mais sur un deuxième coup d'œil, il semble que j'ai compris de la mauvaise façon

OriginalL'auteur Steffan Harris | 2012-03-19