..


Liens sponsorisés

Le contraire d'un INNER JOIN ou pour obtenir les dossiers ne correspondent pas

Article écrit par Max Bossi

Qui sait ce que la connaissance de SQL est la jointure. Dans nos guides et autres articles, nous a expliqué comment la jointure, et comment vous pouvez créer des relations entre les différentes tables dans une base de données.

La condition la plus commune est satisfaite par l'instrument JOIN pour trouver des correspondances entre deux tables, dans ce cas, assiste le INNER JOIN clause qui localise précisément et retourne les champs qui satisfont la correspondance recherchée dans les deux tables ou plus impliqués dans la jointure.

Beaucoup moins intuitif est la nécessité d'identifier les domaines qui, autrement, n'ont pas un match dans la jointure.

Prenons un exemple.
Supposons que vous ayez à gérer une base de données d'un e-commerce se compose de seulement deux tableaux:

  • clients (contenant les données de base des clients)
  • commandes (contenant les commandes passées par les clients)
Maintenant, supposons que vous voulez extraire deux listes différentes de clients: 1) une liste de clients qui ont déjà passé une commande, 2) la liste des clients qui n'ont pas encore acheté quelque chose.

Pour satisfaire la première condition, bien sûr, est assez simple:

 



 SELECT CUSTOMER.FIRST, CUSTOMER.LAST







 D'clients







 Commandes INNER JOIN







 ON = clienti.id ordini.id_cliente







 ORDER BY ASC CUSTOMER.LAST

 
et jusqu'ici aucun problème.

Mais comment pouvons-nous faire pour renverser le résultat? Eh bien ... Tout d'abord, ne pas utiliser un LEFT JOIN, INNER JOIN, mais en vue de rechercher un match n'est pas complète, mais partielle, où, cependant, les résultats de la table de gauche sont retournés en tout cas.
Sans cela, nous allons rechercher (en utilisant la clause WHERE) des documents manquants (c'est à dire ne se trouve pas dans le rapport) et a ensuite identifié comme NULL (dans SQL NULL est défini comme une sorte de «valeur spéciale» qui identifie une absence de valeur ..)

Voyons le code:

 



 SELECT CUSTOMER.FIRST, CUSTOMER.LAST







 D'clients







 LEFT JOIN Commandes







 ON = clienti.id ordini.id_cliente







 OÙ EST NULLE ordini.id_cliente







 ORDER BY ASC CUSTOMER.LAST

 
Le résultat est, en fait, la liste des noms des clients qui n'ont jamais rien acheté.

Dans la même catégorie ...
E-Learning
Cours de MS Access Cours de MS Access
Apprenez à créer et gérer des bases de données facilement et rapidement. A partir de 29 €.
Cours MySQL Cours MySQL
Gestion des bases de données open-source. A partir de 39 €.
Base de données de cours et SQL Base de données de cours et SQL
Créer et gérer des bases de données relationnelles. A partir de 39 €.
Liens sponsorisés