


SQL JOIN : USING, ON ou WHERE – Quelle syntaxe devez-vous choisir ?
Comparaison des méthodes SQL JOIN : USING, ON et WHERE
SQL fournit trois syntaxes pour effectuer les opérations JOIN : USING, ON et WHERE. Bien que ces syntaxes semblent similaires, elles peuvent affecter la lisibilité, l’exactitude et les performances des requêtes.
UTILISER la syntaxe
La syntaxeUSING utilise le mot clé USING
suivi d'un nom de colonne commun aux deux tables pour spécifier la colonne de jointure :
SELECT * FROM a JOIN b USING(ID);
Syntaxe ON
La syntaxeON utilise le mot-clé ON
et une expression d'égalité entre les colonnes jointes pour définir explicitement les conditions de jointure :
SELECT * FROM a JOIN b ON a.ID = b.ID;
Syntaxe WHERE
La syntaxe WHERE combine les conditions de jointure et de filtrage dans une clause WHERE :
SELECT * FROM a, b WHERE a.ID = b.ID;
Considérations relatives aux performances
Il n'y a pas de différence de performances significative entre ces options de syntaxe. Cependant, en raison d'une ambiguïté potentielle, notamment avec les requêtes impliquant des OUTER JOIN, la syntaxe WHERE n'est pas recommandée.
Différences sémantiques
La syntaxeUSING spécifie explicitement uniquement les colonnes de jointure, ce qui apporte de la clarté et réduit le risque de conditions de jointure incorrectes.
La syntaxeON autorise des conditions de jointure plus complexes, notamment des opérateurs d'inégalité (=, !=, >) ou des conditions de jointure supplémentaires (par exemple, AND/OR).
La syntaxe WHERE effectue implicitement une INNER JOIN basée sur l'égalité des colonnes spécifiées. Cela peut conduire à des produits cartésiens inattendus ou à des résultats incorrects pour les jointures externes.
Exemple de description
Considérez la requête suivante :
FROM T1,T2,T3 WHERE T1.ID = T2.ID AND T1.foo = 'bar' AND T2.fish = 42
Il n'est pas clair si T1.foo = 'bar' est une condition de jointure ou une condition de filtre.
La réécriture de la requête en utilisant la syntaxe ON peut apporter de la clarté :
FROM T1 INNER JOIN T2 ON T1.ID = T2.ID WHERE T1.foo = 'bar' AND T2.fish = 42
Conclusion
Bien que les options de syntaxe USING, ON et WHERE puissent toutes accomplir une opération JOIN, la syntaxe ON est généralement préférée en raison de sa plus grande lisibilité, exactitude et cohérence dans la gestion des jointures externes. La syntaxe USING apporte de la simplicité, tandis que la syntaxe WHERE doit être évitée en raison de son ambiguïté potentielle.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Réduisez l'utilisation de la mémoire MySQL dans Docker

Comment modifier une table dans MySQL en utilisant l'instruction ALTER TABLE?

Comment résoudre le problème de MySQL ne peut pas ouvrir la bibliothèque partagée

Exécutez MySQL dans Linux (avec / sans conteneur Podman avec phpmyadmin)

Exécuter plusieurs versions MySQL sur macOS: un guide étape par étape

Quels sont les outils de GUI MySQL populaires (par exemple, MySQL Workbench, PhpMyAdmin)?

Comment configurer le cryptage SSL / TLS pour les connexions MySQL?
