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

Langage SQL Discussion :

Soustraction Requête SQL


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 23
    Points : 20
    Points
    20
    Par défaut Soustraction Requête SQL
    Bonsoir,

    Je réalise une première requête, donnant la totalité des noms de chemins existants :

    "SELECT NomChemin FROM chemin";

    Puis, une seconde donnant les chemins autorisés pour un groupe d'utilisateur :

    "SELECT * FROM chemin, autorisation WHERE chemin.idChemin = autorisation.idChemin AND idR = :id";

    Maintenant, je souhaiterais réaliser une requête permettant de m'afficher les chemins disponibles qui ne sont pas autorisés pour le groupe.

    Donc en gros, requête 1 - requête 2. Cependant, je pèche un peu dans la syntaxe pouvez-vous m'aider ?

    Merci.

  2. #2
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "SELECT * FROM chemin WHERE idChemin not in (select idChemin from autorisation)"

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 849
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 849
    Points : 52 978
    Points
    52 978
    Billets dans le blog
    6
    Par défaut
    Dans les ensembles de données, la soustraction s’appelle différence et est réalisée par l'opérateur EXCEPT :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT NomChemin 
    FROM chemin
    EXCEPT
    SELECT NomChemin 
    FROM   chemin AS C 
           INNER JOIN autorisation AS A 
                 ON C.idChemin = A.idChemin *
    WHERE idR = :id
    De plus la jointure se fait à l'aide de l'opérateur JOIN et non pas par énumération dans la clause FROM (ce qui fait un produit cartésien) puis restriction dans le WHERE...

    A +

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 23
    Points : 20
    Points
    20
    Par défaut
    Merci beaucoup, vous êtes au TOP

    Sujet résolu, bonne journée à tous

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

Discussions similaires

  1. Requête SQL
    Par Leludo dans le forum Langage SQL
    Réponses: 3
    Dernier message: 12/07/2024, 15h41
  2. Soustraction des résultats des deux requêtes sql en access
    Par samsamo dans le forum Requêtes et SQL.
    Réponses: 31
    Dernier message: 24/09/2011, 03h18
  3. probleme soustraction sur une requte sql
    Par kroma23 dans le forum Bases de données
    Réponses: 4
    Dernier message: 25/06/2011, 13h27
  4. Soustraction dans un requête sql
    Par Cifrine dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 01/06/2007, 10h28
  5. Utilisation de MAX dans une requête SQL
    Par Evil onE dans le forum Langage SQL
    Réponses: 7
    Dernier message: 15/06/2004, 18h38

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