IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Oracle Discussion :

[PL/SQL] IN donnnant un ET et pas un OU


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Avatar de yolepro
    Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2002
    Messages
    918
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mai 2002
    Messages : 918
    Par défaut [PL/SQL] IN donnnant un ET et pas un OU
    Bonjour,

    J'ai un problème de conception d'une requete PL/SQL.

    J'ai une table UTILISATEUR
    et une table DROIT

    Un utilisateur peut avoir n droit,

    Je veux monter un requete dynamique qui me permettre de sortir tout les utilisateurs qui ont D1 ET D2 ET D3... en sachant que le nombre D peut varier.
    l'équivalent de ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from utilisateur uti1, utilisateur uti2, droit, ... where uti1.id_droit=droit.id and uti1.id_droit=droit.id and....

    Comment procéder simplement.

    PS: il me faut en gros un truc qui me fasse comme un IN qui me fasse un ET et pas un OU

  2. #2
    Membre averti
    Inscrit en
    Mars 2005
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 57
    Par défaut
    J'ai un petit doute, mais l'équivalent du IN avec des ET, c'est ALL il me semble...

    http://sql.developpez.com/sqlaz/sousrequetes/#L1.2.2

  3. #3
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Par défaut
    Citation Envoyé par Endymion222
    J'ai un petit doute, mais l'équivalent du IN avec des ET, c'est ALL il me semble...
    oui, c'est ça, par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from dual where 1=all(1,1,1,1)
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from dept where 1=all(select deptno from dept);

  4. #4
    Membre émérite
    Avatar de yolepro
    Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2002
    Messages
    918
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mai 2002
    Messages : 918
    Par défaut
    et appliqué à ma problèmatique ? ca donne quoi? parce que je ne vois pas trop comment l'integrer.

  5. #5
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Par défaut
    J'ai revu quelques noms de champs qui me paraissent plus logique
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT u.id_user, u.Nom
    FROM utilisateur u, droit d
    WHERE u.id_user = d.id_user 
    AND u.id_droit IN ('D1', 'D2', 'D3')
    GROUP BY u.id_user, u.Nom
    HAVING COUNT(DISTINCT u.id_droit) = 3
    Si possible utilise la syntaxe normée pour la jointure.

  6. #6
    Membre émérite
    Avatar de yolepro
    Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2002
    Messages
    918
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mai 2002
    Messages : 918
    Par défaut
    Merci media ca parait plus logique comme ca... effectivement le All n'est pas applicable dans mon cas.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. * du SQL pour un INT ? % ne fonctionne pas...
    Par Allen dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 26/04/2006, 11h23
  2. Réponses: 2
    Dernier message: 06/06/2005, 15h13
  3. [PL/SQL]Procédure qui ne se finit pas...
    Par tscoops dans le forum Oracle
    Réponses: 8
    Dernier message: 13/12/2004, 15h53
  4. [SQL] Requête à jointure qui ne fonctionne pas
    Par Bensor dans le forum Langage SQL
    Réponses: 2
    Dernier message: 09/12/2004, 16h10
  5. Réponses: 2
    Dernier message: 04/06/2004, 11h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo