0
votes

Différence entre deux requêtes SQL et quand utiliser chacun

En fait, je suis confus sur deux requêtes SQL. Les deux me donnent le même résultat mais lequel est préféré et quand utiliser chacun d'entre eux? xxx


4 commentaires

sont les mêmes .. L'une utilise une syntaxe de jointure explicite et la seconde utilisation (ancienne) implicite Syntaxe basée sur l'endroit où ... la première utilisation de la dernière version de jointure


Quel SGBD utilisez-vous? (C'est la syntaxe spécifique du produit.)


Dépend du produit DBMS utilisé. par exemple. Le premier serait très inefficace (au point d'être faux) à Postgres. Dans SQL standard, la relève de la mise à jour ne prend pas en charge un de la clause ou des jointures pour commencer avec


Pour autant que je sache, seul SQL Server prend en charge ces deux requêtes, alors j'ai ajouté cette balise.


3 Réponses :


0
votes

Vous observez le même résultat car ils signifiaient tous les deux la même signification. La différence dans les deux requêtes est la performance. Comme nous exécutons les deux requêtes, il existe une différence de performance et cela est dû au plan d'exécution que le planificateur met en place. Où la clause -> il planifère choisit un itinéraire plus efficace REJOIGNEZ -> Nous pouvons probablement faire fonctionner la jointure aussi rapide (sinon plus rapide) en ajoutant un index sur les deux colonnes.


0 commentaires

1
votes

Ils sont les mêmes. En fait, ils devraient générer le même plan d'exécution.

Bien qu'il n'y ait aucune raison de choisir l'un sur l'autre, le formulaire rejoindre est généralement utilisé. Il y a une raison simple: SQL Server ne prend pas en charge les alias pour la table update . Donc, cela ne fonctionne pas: xxx

Cependant, c'est bien: xxx

aussi l'utilisation de l'utilisation explicite < Code> Rejoindre permet d'utiliser Joindre de gauche .

à l'inconvénient, la version implicite rejoindre est compatible avec plus de bases de données - - En particulier, Postgres prend en charge cette syntaxe.


0 commentaires

0
votes

Il ne devrait y avoir aucune différence de performance. Vous pouvez utiliser les deux manières. Il dépend totalement de vous.


0 commentaires