Exécutez efficacement la jointure gauche SQL et pré-filtrez les données de table
Lorsque vous travaillez avec plusieurs tables, il est souvent nécessaire de filtrer l'une des tables avant de les rejoindre. Cet exemple implique deux tables : Customer et Entry.
Le but est de filtrer la table des entrées en fonction d'une catégorie spécifique 'D' avant d'effectuer une jointure gauche entre ces deux tables. Le résultat attendu est le suivant : récupérer tous les enregistrements de la table client, que les enregistrements pertinents existent ou non dans la table d'entrée en même temps, exclure les enregistrements de la table d'entrée qui ne remplissent pas les conditions de catégorie ;
La requête SQL suivante montre comment y parvenir :
<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>
En déplaçant la condition de filtre WHERE dans la condition JOIN, nous pouvons appliquer un filtrage de catégorie à la table d'entrée avant de rejoindre. Cela garantit que seuls les enregistrements d'entrée qui répondent aux critères de catégorie sont inclus dans les résultats de jointure.
Exemple de tableau
<code>客户表 (Customer): ╔══════════╦═══════╗ ║ Customer ║ State ║ ╠══════════╬═══════╣ ║ A ║ S ║ ║ B ║ V ║ ║ C ║ L ║ ╚══════════╩═══════╝ 条目表 (Entry): ╔══════════╦═══════╦══════════╗ ║ Customer ║ Entry ║ Category ║ ╠══════════╬═══════╬══════════╣ ║ A ║ 5575 ║ D ║ ║ A ║ 6532 ║ C ║ ║ A ║ 3215 ║ D ║ ║ A ║ 5645 ║ M ║ ║ B ║ 3331 ║ A ║ ║ B ║ 4445 ║ D ║ ╚══════════╩═══════╩══════════╝</code>
Résultats
<code>╔══════════╦═══════╦═══════╗ ║ Customer ║ State ║ Entry ║ ╠══════════╬═══════╬═══════╣ ║ A ║ S ║ 5575 ║ ║ A ║ S ║ 3215 ║ ║ B ║ V ║ 4445 ║ ║ C ║ L ║ NULL ║ ╚══════════╩═══════╩═══════╝</code>
En résumé, en utilisant la clause AND dans la condition JOIN, nous pouvons filtrer les tables avant de les joindre, récupérant ainsi les données plus précisément en fonction des conditions spécifié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!