Maison >base de données >tutoriel mysql >SQL JOIN : OÙ ou ON : quelle est la principale différence dans le filtrage des données jointes ?

SQL JOIN : OÙ ou ON : quelle est la principale différence dans le filtrage des données jointes ?

Susan Sarandon
Susan Sarandonoriginal
2025-01-23 02:49:11764parcourir

SQL JOIN: WHERE vs. ON: What's the Key Difference in Filtering Joined Data?

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!

Déclaration:
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