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>
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>
Stratégies alternatives
Bien que les jointures externes droites puissent être bénéfiques, des approches alternatives peuvent obtenir des résultats similaires :
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!