SQL JOIN : Comprendre les clauses WHERE et ON
La maîtrise des SQL JOIN nécessite une compréhension claire des clauses WHERE
et ON
. Bien que parfois interchangeables, leurs fonctions diffèrent considérablement.
WHERE
Clause : Filtrage post-jointure
La clause WHERE
filtre les résultats d'une jointure. Prenons cet exemple :
<code class="language-sql">SELECT * FROM Orders LEFT JOIN OrderLines ON OrderLines.OrderID = Orders.ID WHERE Orders.ID = 12345;</code>
Ici, la clause WHERE
filtre la sortie, affichant uniquement les lignes où Orders.ID
est 12345. Cela s'applique après que LEFT JOIN
a combiné les données de Orders
et OrderLines
.
ON
Clause : Définition de la condition de jointure
La clause ON
définit la condition de jointure elle-même. Observez :
<code class="language-sql">SELECT * FROM Orders LEFT JOIN OrderLines ON OrderLines.OrderID = Orders.ID AND Orders.ID = 12345;</code>
La clause ON
stipule que seules les lignes où OrderLines.OrderID
correspond à Orders.ID
et Orders.ID
est égal à 12345 seront incluses dans la jointure. Ce filtrage se produit pendant le processus d'adhésion.
Distinction sémantique clé
Bien que WHERE
et ON
puissent donner des résultats similaires avec les INNER JOIN
, leurs rôles sémantiques sont distincts. WHERE
filtre l'ensemble de données final joint, tandis que ON
détermine quelles lignes sont incluses dans l'opération de jointure.
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!