Maison >base de données >tutoriel mysql >« FROM Table1 LEFT JOIN Table2 » et « FROM Table2 RIGHT JOIN Table1 » sont-ils toujours interchangeables ?

« FROM Table1 LEFT JOIN Table2 » et « FROM Table2 RIGHT JOIN Table1 » sont-ils toujours interchangeables ?

DDD
DDDoriginal
2025-01-14 15:46:44805parcourir

Are `FROM Table1 LEFT JOIN Table2` and `FROM Table2 RIGHT JOIN Table1` Always Interchangeable?

SQL LEFT JOIN et RIGHT JOIN : sont-ils toujours équivalents ?

Les clauses

SQL LEFT JOIN et RIGHT JOIN combinent les données de deux tables. Bien qu'apparemment interchangeable dans certains cas, une distinction clé existe.

Examinons deux tableaux :

<code class="language-sql">CREATE TABLE Table1 (id INT, Name VARCHAR(10));
CREATE TABLE Table2 (id INT, Name VARCHAR(10));</code>

Remplir Table1 :

<code>Id | Name
---|-----
1  | A
2  | B</code>

Et Table2 :

<code>Id | Name
---|-----
1  | A
2  | B
3  | C</code>

Les requêtes :

<code class="language-sql">SELECT *
FROM Table1
LEFT JOIN Table2 ON Table1.id = Table2.id;

SELECT *
FROM Table2
RIGHT JOIN Table1 ON Table1.id = Table2.id;</code>

donnent des résultats identiques dans ce cas spécifique. Les deux lignes correspondent en fonction de Table1.id = Table2.id.

Cependant, considérez cette alternative LEFT JOIN :

<code class="language-sql">SELECT *
FROM Table2
LEFT JOIN Table1 ON Table2.id = Table1.id;</code>

Cette requête renvoie toutes les lignes de Table2, y compris celles sans correspondance dans Table1. Un RIGHT JOIN (par exemple, FROM Table1 RIGHT JOIN Table2) se comporterait à l'inverse, en omettant ces lignes sans correspondance.

Par conséquent, même si FROM Table1 LEFT JOIN Table2 et FROM Table2 RIGHT JOIN Table1 peuvent produire des résultats similaires dans des conditions spécifiques, la direction de jointure affecte considérablement l'exhaustivité du résultat. Ils ne sont pas universellement interchangeables.

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