Précédent   Forum des professionnels en informatique > Bases de données > Langage SQL
Langage SQL Forum d'entraide sur le langage SQL et sur les questions liées à la conception de schéma (DDL). Cours SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/04/2011, 16h10   #1
Futur Membre du Club
 
Inscription : septembre 2007
Messages : 64
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 64
Points : 19
Points : 19
Par défaut Trouver des non correspondances

Bonjour,

J'ai une table utilisateurs et une table demandes (faîtes par les utilisateurs : champ FK_demandeur contenant l'id utilisateur qui a fait une demande).

Je voudrais savoir si il est possible par requête sql d'obtenir la liste des utilisateurs qui n'ont jamais fait de demandes.

Si oui, quelle piste dois-je suivre ?

Merci d'avance,
Akazed est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/04/2011, 16h15   #2
Membre Expert
 
Inscription : janvier 2010
Messages : 1 084
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : janvier 2010
Messages : 1 084
Points : 1 573
Points : 1 573
bonjour

oui c'est possible (heureusement )

Code SQL :
1
2
3
4
5
6
7
8
 
SELECT U.Nom
FROM Utilisateurs U
WHERE NOT EXISTS(
    SELECT *
    FROM demandes D
    WHERE D.FK_demandeur = U.ID_utilisateur
)
aieeeuuuuu est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 21/04/2011, 16h18   #3
Membre Expert
 
Homme
Responsable de service informatique
Inscription : janvier 2009
Messages : 1 081
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 38
Localisation : France

Informations professionnelles :
Activité : Responsable de service informatique
Secteur : Boutique - Magasin

Informations forums :
Inscription : janvier 2009
Messages : 1 081
Points : 1 875
Points : 1 875
Bonjour,
Il me semble qu'avec une jointure externe la requête est plus rapide:
Code SQL :
1
2
3
4
5
 
SELECT U.Nom
FROM Utilisateurs U
LEFT OUTER JOIN demandes D ON D.FK_demandeur = U.ID_utilisateur
WHERE D.FK_demandeur IS NULL

Tatayo.
tatayo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/04/2011, 16h51   #4
Membre Expert
 
Inscription : janvier 2010
Messages : 1 084
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : janvier 2010
Messages : 1 084
Points : 1 573
Points : 1 573
cela dépend des index, des données,...
aieeeuuuuu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/04/2011, 09h14   #5
Futur Membre du Club
 
Inscription : septembre 2007
Messages : 64
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 64
Points : 19
Points : 19
Voilà c'est exactement ce qu'il me fallait, merci !
Akazed est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h26.


 
 
 
 
Partenaires

Hébergement Web