Les requêtes de base de données nécessitent souvent de récupérer des données d'une table sans entrée correspondante dans une autre. Illustrons cela avec un exemple :
Scénario :
Nous avons deux tables, 'table1' et 'table2', avec les structures suivantes :
<code>table1 (id, name) table2 (id, name)</code>
Objectif :
Notre objectif est d'extraire les valeurs 'name' de 'table2' qui sont absentes dans 'table1'.
Une approche naïve pourrait être :
<code>SELECT name FROM table2 -- where name is not in table1</code>
Malheureusement, cette requête SQL est incomplète et ne donnera pas le résultat attendu.
Solution efficace :
La bonne approche consiste à utiliser un LEFT JOIN
:
<code class="language-sql">SELECT t2.name FROM table2 t2 LEFT JOIN table1 t1 ON t1.name = t2.name WHERE t1.name IS NULL;</code>
Explication :
LEFT JOIN
: Cela garantit que toutes les lignes de « table2 » sont incluses dans l'ensemble de résultats, quelles que soient les lignes correspondantes dans « table1 ».WHERE
Clause : La condition WHERE t1.name IS NULL
filtre les résultats, en conservant uniquement les lignes de 'table2' où il n'y a pas de 'nom' correspondant dans 'table1'.Cette LEFT JOIN
technique est largement compatible avec divers systèmes de bases de données, offrant une méthode robuste pour identifier les enregistrements manquants entre les tables.
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!