Maison > base de données > tutoriel mysql > Devez-vous filtrer avant ou après une jointure à gauche ?

Devez-vous filtrer avant ou après une jointure à gauche ?

Patricia Arquette
Libérer: 2025-01-14 13:21:44
original
243 Les gens l'ont consulté

Should You Filter Before or After a Left Join?

Optimiser les requêtes de jointure gauche : filtrer en premier ou filtrer en dernier ?

Dans l'analyse et le traitement des données, il est souvent nécessaire de filtrer les données d'un tableau avant d'effectuer une jointure gauche pour garantir que seules les lignes requises dans le tableau de gauche sont incluses dans le résultat de la jointure.

Description du problème

Supposons qu'il y ait deux tables, "Client" et "Entrée". Nous voulons effectuer une jointure gauche basée sur la colonne "Client", mais inclure uniquement la colonne "Catégorie" dans la "Table d'entrée" égale à 'D. 'entrée. Si vous appliquez le filtre à l'aide de la clause WHERE après la jointure, les lignes correspondantes dans le tableau de gauche seront exclues.

Solution

Pour filtrer la table de gauche avant de la rejoindre, déplacez la condition de filtre vers la clause ON de l'instruction de jointure de gauche. Cela garantit que les lignes du tableau de gauche sont filtrées avant d'être jointes au tableau de droite.

<code class="language-sql">SELECT c.Customer, c.State, e.Entry
FROM Customer c
LEFT JOIN Entry e
   ON c.Customer = e.Customer AND e.Category = 'D'</code>
Copier après la connexion

Explication

Dans cette requête, la clause ON contient une condition supplémentaire e.Category = 'D' qui filtre la « table des entrées » en fonction de la colonne « catégorie ». Les lignes de la table Customers seront incluses dans la jointure uniquement s'il existe un client dans la table Customers qui correspond à la valeur de catégorie spécifiée.

Avantages

Filtrer la table de gauche avant de rejoindre garantit :

  • Toutes les lignes du tableau de gauche seront prises en compte, qu'il y ait ou non des lignes dans le tableau de gauche qui correspondent au tableau de droite.
  • Le résultat de la jointure contient uniquement les lignes requises des deux tables.

Conclusion

Avec cette technique, vous pouvez filtrer efficacement les données d'un tableau avant d'effectuer une jointure gauche. Cela garantit que les résultats de la connexion reflètent avec précision les exigences en matière de données requises pour la tâche d'analyse ou de traitement des donné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