Maison > base de données > tutoriel mysql > Comment un LEFT JOIN dans SQL peut-il identifier les données existantes dans une table mais pas dans une autre ?

Comment un LEFT JOIN dans SQL peut-il identifier les données existantes dans une table mais pas dans une autre ?

Barbara Streisand
Libérer: 2025-01-03 02:16:38
original
516 Les gens l'ont consulté

How Can a LEFT JOIN in SQL Identify Data Existing in One Table But Not Another?

Recherche de données inexistantes à l'aide de LEFT JOIN

En SQL, il peut être nécessaire de comparer deux tables et d'identifier les données qui existent dans une seule mais pas l'autre. Ce scénario est couramment rencontré lors de la vérification des enregistrements manquants.

Considérez les tableaux suivants :

TABLE1

id name address
1 mm 123
2 nn 143

TABLE2

name age
mm 6
oo 9

L'objectif est de retrouver les noms inexistants dans le TABLEAU1 en le comparant avec TABLEAU2. Dans ce cas, la deuxième ligne de TABLE1 avec le nom "nn" n'existe pas dans TABLE2.

Une première tentative utilisant un INNER JOIN :

SELECT w.*
FROM TABLE1 w
INNER JOIN TABLE2 v
ON w.name <> v.name
Copier après la connexion

ne parviendra pas à récupérer le fichier souhaité. résultat car INNER JOIN ne renvoie que les lignes où il y a une correspondance dans les deux tables.

La solution réside dans l'utilisation d'un LEFT JOIN à la place :

SELECT w.*
FROM TABLE1 w
LEFT JOIN TABLE2 v ON w.name = v.name
WHERE ISNULL(v.name);
Copier après la connexion

LEFT JOIN effectue une jointure externe, ce qui signifie qu'elle renverra toutes les lignes de la table de gauche (TABLE1), qu'il existe ou non une ligne correspondante dans la table de droite (TABLE2). La condition ISNULL(v.name) vérifie les lignes de TABLE1 où le champ de nom correspondant dans TABLE2 est nul, indiquant que le nom n'existe pas dans TABLE2.

Le résultat sera :

id name address
2 nn 143

Cette requête récupère avec succès la ligne de TABLE1 avec le nom inexistant "nn".

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