Maison >base de données >tutoriel mysql >MySQL utilise-t-il par défaut INNER JOIN ou la syntaxe virgule ?

MySQL utilise-t-il par défaut INNER JOIN ou la syntaxe virgule ?

DDD
DDDoriginal
2024-10-26 19:17:30547parcourir

Does MySQL Default to INNER JOIN or Comma Syntax?

Comportement de jointure par défaut de MySQL : percer le mystère

Dans le domaine de MySQL, l'absence d'une clause JOIN explicite soulève une question fondamentale : quel est le comportement par défaut ? S'apparente-t-il à un INNER JOIN, ou émule-t-il l'ancienne syntaxe séparée par des virgules ?

La valeur par défaut : un INNER JOIN

Contrairement à la croyance populaire, laisser de côté la clause JOIN dans MySQL revient en fait à utiliser un INNER JOIN. En d’autres termes, la spécification de INNER est redondante. MySQL interprète ces instructions comme des INNER JOIN, ce qui vous permet de les omettre par souci de concision.

Comparaison des variantes de JOIN

Pour clarifier davantage, envisagez les scénarios suivants :

  • SELECT * FROM t1 JOIN t2 équivaut à SELECT * FROM t1 INNER JOIN t2.
  • SELECT * FROM t1, t2 émule la syntaxe séparée par des virgules, similaire à SELECT * FROM t1 INNER JOIN t2.

WHERE Clauses et jointures

Concernant votre deuxième question, les clauses WHERE ont une relation nuancée avec les JOIN. Bien qu'elles partagent des similitudes, elles servent des objectifs distincts.

Les clauses WHERE filtrent les données extraites des tables participantes. En revanche, les JOIN définissent les relations entre ces tables, déterminant quelles lignes sont incluses dans l'ensemble de résultats.

Syntaxe virgule par rapport à la syntaxe JOIN

Bien que l'effet de l'utilisation les virgules et les mots-clés (JOIN ou INNER JOIN) sont identiques, leur histoire et leurs implications diffèrent. La syntaxe virgule, héritée de la norme ANSI-89, présente certains inconvénients qui ont conduit à l'introduction du mot-clé JOIN dans la norme ANSI-92.

Avantages de l'utilisation de la syntaxe JOIN

Pour plus de clarté et de maintenabilité, il est fortement conseillé d'utiliser systématiquement la syntaxe JOIN plutôt que les virgules. Cela offre plusieurs avantages :

  • Lisibilité améliorée en séparant les relations entre les tables et les filtres.
  • Maintenabilité améliorée en gardant ces éléments distincts.
  • Conversion transparente en OUTER JOIN.
  • Évitement des erreurs ambiguës dues aux règles de préséance.
  • Probabilité réduite de créer des produits cartésiens en omettant les clauses de jointure.

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