Maison > base de données > tutoriel mysql > Quand les jointures externes droites sont-elles réellement utiles ?

Quand les jointures externes droites sont-elles réellement utiles ?

Mary-Kate Olsen
Libérer: 2025-01-08 07:22:40
original
318 Les gens l'ont consulté

When Are Right Outer Joins Actually Useful?

Jointures externes droites : une évaluation pratique

Bien que les jointures internes et gauches soient fréquemment utilisées, la valeur pratique des jointures externes droites suscite souvent des débats. Certains développeurs les trouvent déroutants et préfèrent des méthodes alternatives. Cet article explore la véritable utilité des jointures externes droites dans la manipulation des données.

Situations où le droit extérieur rejoint Excel

Dans SQL Server, les jointures externes droites, lorsqu'elles sont utilisées avec des indicateurs de jointure, peuvent améliorer considérablement les performances des requêtes. En spécifiant une table plus petite comme entrée de construction, l'optimisation des requêtes est améliorée. Par exemple :

<code class="language-sql">SELECT #Large.X
FROM #Small
RIGHT HASH JOIN #Large ON #Small.X = #Large.X
WHERE #Small.X IS NULL</code>
Copier après la connexion

Cette requête utilise la table plus petite (#Small) pour créer la table de hachage, ce qui entraîne des gains d'efficacité. Obtenir le même résultat avec des jointures internes et gauches pourrait être moins efficace.

Au-delà de cette optimisation spécifique à SQL Server, les jointures externes droites s'avèrent utiles dans les scénarios impliquant plusieurs tables avec des relations facultatives. Imaginez des tables pour People, Pets et Pet Accessories, où les gens peuvent ou non posséder des animaux de compagnie, et les animaux peuvent ou non avoir des accessoires.

Pour récupérer toutes les personnes (même celles sans animaux) et les détails des accessoires de leur animal (le cas échéant), une jointure externe droite est souvent la solution la plus claire :

<code class="language-sql">SELECT P.PersonName,
       Pt.PetName,
       Pa.AccessoryName
FROM   Pets Pt
       JOIN PetAccessories Pa
         ON Pt.PetName = Pa.PetName
       RIGHT JOIN Persons P
         ON P.PersonName = Pt.PersonName;</code>
Copier après la connexion

Stratégies alternatives

Bien que les jointures externes droites puissent être bénéfiques, des approches alternatives peuvent obtenir des résultats similaires :

  • Tables dérivées avec jointures gauches : Construisez une table dérivée représentant la relation entre les tables, puis effectuez une jointure gauche avec la table principale.
  • Clauses Dual ON dans les jointures gauches : Employez deux clauses ON dans une jointure gauche, contrôlant l'ordre de jointure via la disposition des clauses.

Ces alternatives remplacent efficacement les jointures externes droites mais peuvent être moins immédiatement compréhensibles pour certains développeurs. Cependant, si éviter les jointures externes droites est une priorité, ces méthodes offrent des alternatives appropriées.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal