Maison > base de données > tutoriel mysql > Comment filtrer une table avant une jointure gauche en SQL ?

Comment filtrer une table avant une jointure gauche en SQL ?

Patricia Arquette
Libérer: 2025-01-14 13:11:47
original
197 Les gens l'ont consulté

How to Filter a Table Before a Left Join in SQL?

Filtrer la table avant la jointure à gauche

En SQL, les tables de jointure sont un outil puissant pour combiner des données provenant de plusieurs sources de données. Cependant, vous devrez peut-être filtrer l'une des tables avant d'effectuer l'opération de jointure.

Supposons que vous ayez deux tables : Client et Entrée. Vous souhaitez récupérer tous les enregistrements de la table Clients, qu'ils aient ou non des entrées correspondantes dans la table Entrées, mais uniquement les clients de catégorie « D » dans la table Entrées.

Une simple requête de jointure gauche ressemble à ceci :

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

Cependant, cette requête exclura les clients avec l'ID "C" car ils n'ont aucune entrée de catégorie "D". Pour vous assurer que tous les enregistrements clients sont inclus, vous pouvez déplacer le filtre dans la condition de jointure :

<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

En plaçant le filtre à l'intérieur de la condition de jointure, vous pouvez filtrer efficacement la table d'entrée avant d'effectuer la jointure. Cela vous permet de récupérer tous les clients, qu'ils aient ou non des entrées correspondantes dans le tableau des entrées, tout en n'incluant que les entrées de catégorie « D » dans les résultats.

Cette solution offre un moyen flexible de contrôler les données incluses dans les résultats de jointure, vous permettant d'effectuer des opérations de données plus précises et optimisé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