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
Libérer: 2025-01-14 15:46:44
original
850 Les gens l'ont consulté

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>
Copier après la connexion

Remplir Table1 :

<code>Id | Name
---|-----
1  | A
2  | B</code>
Copier après la connexion

Et Table2 :

<code>Id | Name
---|-----
1  | A
2  | B
3  | C</code>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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!

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal