Maison >base de données >tutoriel mysql >Pourquoi les mots-clés JOIN sont-ils préférés aux jointures par virgule dans SQL ?

Pourquoi les mots-clés JOIN sont-ils préférés aux jointures par virgule dans SQL ?

Susan Sarandon
Susan Sarandonoriginal
2025-01-08 08:06:40858parcourir

Why Are JOIN Keywords Preferred Over Comma Joins in SQL?

Pourquoi éviter les jointures par virgules dans SQL ?

Les nouveaux développeurs SQL utilisent souvent des jointures par virgules, une manière moins explicite de joindre des tables :

<code class="language-sql">SELECT a.someRow, b.someRow 
FROM tableA AS a, tableB AS b 
WHERE a.ID=b.ID AND b.ID= $someVar</code>

Bien que fonctionnelle (équivalente à un INNER JOIN), cette méthode présente des inconvénients potentiels en termes de performances.

L'inefficacité des jointures par virgules

Considérez cet exemple :

<code class="language-sql">SELECT * FROM people p, companies c 
    WHERE p.companyID = c.id AND p.firstName = 'Daniel'</code>

La base de données peut initialement créer un produit cartésien complet (chaque combinaison de lignes people et companies), puis filtrer en fonction de la clause WHERE. C'est nettement moins efficace que les méthodes alternatives.

La supériorité des jointures basées sur des mots clés

L'utilisation de mots-clés JOIN explicites et de la clause ON offre une approche plus efficace et plus lisible :

<code class="language-sql">SELECT * FROM people p JOIN companies c ON p.companyID = c.id
    WHERE p.firstName = 'Daniel'</code>

Cela indique clairement la condition de jointure à la base de données, optimisant le processus de jointure et évitant la création inutile d'un grand produit cartésien intermédiaire. Cela conduit à une exécution plus rapide des requêtes et à une consommation réduite de ressources, en particulier avec de grands ensembles de données.

Meilleure pratique : utilisez toujours les mots-clés JOIN

Pour de meilleures performances, lisibilité et maintenabilité, préférez toujours les mots-clés JOIN (INNER JOIN, LEFT JOIN, RIGHT JOIN, etc.) aux jointures par virgules. Même si les jointures par virgules existantes n'ont peut-être pas besoin d'être réécrites immédiatement, l'adoption de cette bonne pratique améliore constamment votre code SQL.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn