Maison > base de données > tutoriel mysql > Quand les requêtes LEFT JOIN et RIGHT JOIN sont-elles interchangeables dans SQL ?

Quand les requêtes LEFT JOIN et RIGHT JOIN sont-elles interchangeables dans SQL ?

DDD
Libérer: 2025-01-14 16:02:42
original
955 Les gens l'ont consulté

When Are LEFT JOIN and RIGHT JOIN Queries Interchangeable in SQL?

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

LEFT JOIN et RIGHT JOIN dans SQL fusionnent les lignes de deux tables en fonction des valeurs correspondantes. Bien que fonctionnellement similaire, une distinction clé existe.

Illustrons :

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

INSERT INTO Table1 (id, Name) VALUES
(1, 'A'),
(2, 'B');

INSERT INTO Table2 (id, Name) VALUES
(1, 'A'),
(2, 'B'),
(3, 'C');</code>
Copier après la connexion

Ces 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

donne des résultats identiques. Les deux font correspondre les lignes de Table1 avec les lignes correspondantes de Table2 en utilisant le champ id. LEFT JOIN inclut toutes les lignes de Table1, tandis que RIGHT JOIN fait la même chose pour Table2.

Cependant, considérez ceci :

<code class="language-sql">SELECT *
FROM Table2
LEFT JOIN Table1 ON Table1.id = Table2.id;</code>
Copier après la connexion

ou son équivalent :

<code class="language-sql">SELECT *
FROM Table1
RIGHT JOIN Table2 ON Table1.id = Table2.id;</code>
Copier après la connexion

Le résultat diffère. Cela renvoie toutes les lignes de Table2 ainsi que toutes les lignes correspondantes de Table1. Il s'agit d'une « jointure externe » dans laquelle les lignes d'une table sont incluses même sans correspondance dans l'autre. La clé est que la désignation gauche ou droite dicte quelles lignes de la table sont garanties d'être entièrement incluses dans l'ensemble de résultats, quelles que soient les lignes correspondantes dans l'autre table. Par conséquent, un simple échange de tables dans la requête ne produit pas toujours le même résultat. L'interchangeabilité dépend entièrement des données et du résultat souhaité.

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