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 :

Ignorer une cle etrangere


Sujet :

Langage SQL

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 23
    Points : 22
    Points
    22
    Par défaut Ignorer une cle etrangere
    Bonjour,

    Voici le schema d'une partie de ma BD. Je vais essayer d'etre consis dans mon interrogation.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
     
    CREATE TABLE Jeu{
      idJeu                       NUMBER NOT NULL,
      CONSTRAINT PK_J     PRIMARY KEY (idJeu)
    };
     
    CREATE TABLE Client{
      idClient                  NUMBER NOT NULL,
      idJeu_1                  NUMBER NOT NULL,
      idJeu_2                  NUMBER,
      CONSTRAINT PK_C   PRIMARY KEY (idClient),
      CONSTRAINT FK_1   FOREIGN KEY (idJeu_1) REFERENCES Jeu,
      CONSTRAINT FK_2   FOREIGN KEY (idJeu_2) REFERENCES Jeu
    };
     
     
    CREATE TABLE Vote{
      idVote                       NUMBER NOT NULL,
      idJeu                         NUMBER NOT NULL,
      CONSTRAINT PK_V      PRIMARY KEY (idVote),
      CONSTRAINT FK_V      FOREIGN KEY (idJeu) REFERENCES Jeu
    };
    Question:

    Je veux compter le nombre de Vote par Client pour un jeu. Mais, si la cle etrangere idJeu_2 dans la table Client fait reference a un jeu il faut que la requete ignore les idJeu_1 dans la table vote pour ce client.
    Donc, le defi etant de faire une requete qui va ignorer la premiere cle etrangere si la deuxieme cle etrangere n'est pas null dans la table Client.

    (Je travaille sur Oracle 10...)

    Merci de votre aide

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 114
    Points : 128
    Points
    128
    Par défaut Si j'ai bien compris ...
    Si j'ai bien compris :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT COUNT(Vote.idVote), Client.idClient
    FROM Vote, Client
    Where Vote.idJeu = :maValeur
    And ((Vote.idJeu = Client.idJeu_1 And Client.idJeu_2 is Null)
             Or Vote.idJeu = Client.idJeu_2));

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 23
    Points : 22
    Points
    22
    Par défaut
    Merci titfab pour ta reponse,

    C'est bien ce que je cherchais.

    a+


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

Discussions similaires

  1. Réponses: 6
    Dernier message: 13/12/2007, 09h14
  2. Selection d enregistrement avec une cle etrangere
    Par Seth77 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 16/11/2007, 19h26
  3. [phpMyAdmin] Mettre en place une clé étrangère sous phpMyAdmin
    Par habasque dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 30/11/2006, 21h47
  4. une cle etrangere qui reference deux champs
    Par TorkK dans le forum Langage SQL
    Réponses: 2
    Dernier message: 11/11/2006, 16h10
  5. Réponses: 1
    Dernier message: 25/09/2006, 10h18

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