J'ai la requête suivante: mais, je dois maintenant modifier cette requête et utiliser Mes tables ressemblent aux éléments suivants: p> Comment puis-je utiliser le Existe code> au lieu de dans code>, et il devrait donner les mêmes résultats. p> Existe code> fonctionner? p> p>
3 Réponses :
Vous devez faire correspondre les deux colonnes qui seront utilisées dans le la raison pour laquelle vous devez le faire, c'est parce que Existe code> ensemble: Existe code> effectue une jointure semi-jointure sur la table et doit donc avoir une condition de jointure. P> p>
Cela le fera via une jointure intérieure directe.
Parfois, cela est plus rapide, parfois ce n'est pas le cas. Si Table2 code> est significativement plus petit que Table1 code>, souvent, il est souvent beaucoup plus rapide de faire existant code>. Obtenez le plan d'exécution pour obtenir des résultats concluants.
@ Scientifique: si "SMART" SQL Server est utilisé qu'il agira par le plan, mais si l'optimisation SQL est limitée (par exemple, sur SQLite) qu'il n'existe probablement que l'optimisation sera simplement désactivée s'il y a ou, Existe, etc. Prabic n'a pas marqué le serveur spécifique qu'il utilise.
Modification de l'expression: à un Ajouter un Déplacez la colonne de correspondance externe (A) dans l'interne Déplacez la colonne de correspondance interne (c) vers la clause Modifiez le Pour être sûr, ajoutez le nom de la table sur la colonne externe: P>
existe code> est une simple question de: p>
où code> à la fin de l'interne Sélectionnez CODE> P>
FROM Table1 WHERE EXISTS( SELECT * FROM Table2 WHERE Table1.a = c )
SELECT CODE> 'S où code> clause p>
FROM Table1 WHERE EXISTS( SELECT * FROM Table2 WHERE a = c )
où code>, laissant un espace porteur de colonne (une constante ou *): p>
FROM Table1 WHERE IN( SELECT * FROM Table2 WHERE a = c )
dans code> sur Existe code>: p>
FROM Table1 WHERE IN( SELECT c FROM Table2 WHERE a )
FROM Table1 WHERE a IN( SELECT c FROM Table2 WHERE )
Cela ressemble à Oracle .. Mais Pleeeeeeaseeaseeaseeaseeaseeaseeaseeaseeaseeaseease que vous utilisez !!