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 :

afficher tous les confrontations qui ne sont pas dans la table prono


Sujet :

Langage SQL

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    314
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 314
    Points : 206
    Points
    206
    Par défaut afficher tous les confrontations qui ne sont pas dans la table prono
    Bonjour,

    voici mon un extrait du schema de ma base de données

    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 EQUIPE ( 
      NO_EQUIPE   NUMBER        NOT NULL, 
      LIB_EQUIPE  VARCHAR2 (50)  NOT NULL, 
      GROUPE      CHAR (1)      NOT NULL, 
      CONSTRAINT PK_EQUIPE
      PRIMARY KEY ( NO_EQUIPE ) );
     
    CREATE TABLE NIVEAU ( 
      NO_NIVEAU   NUMBER (1)    NOT NULL, 
      LIB_NIVEAU  VARCHAR2 (50)  NOT NULL, 
      CONSTRAINT PK_NIVEAU
      PRIMARY KEY ( NO_NIVEAU ) ;
     
    CREATE TABLE CONFRONTATION ( 
      NO_CONF    NUMBER        NOT NULL, 
      EQUIPE1    NUMBER        NOT NULL, 
      EQUIPE2    NUMBER        NOT NULL, 
      NO_NIVEAU  NUMBER        NOT NULL, 
      DATE_LIM   DATE          NOT NULL, 
      JOUR       DATE          NOT NULL, 
      CONSTRAINT PK_CONF
      PRIMARY KEY ( NO_CONF ) );
    cette base de données me permet de récupérer des scores pour des matchs. Les scores sont ajoutés dans la table confrontation.

    je souhaites effectuer une requête qui me permette d'afficher tous les confrontations qui ne sont pas dans la table prono.

    Voici la requête qui me permet d'afficher tous les matchs.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    select e1.no_equipe, e2.no_equipe, e1.lib_equipe, e2.lib_equipe,
              jour, date_lim, no_conf
              from confrontation c, equipe e1, equipe e2, niveau n
              where c.no_niveau=n.no_niveau
              and c.equipe1=e1.no_equipe
              and c.equipe2=e2.no_equipe
              and e1.groupe='$poule'";
    Pour afficher tous les confrontations qui ne sont pas dans la table prono j'ai procédé de la sorte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    select e1.no_equipe, e2.no_equipe, e1.lib_equipe, e2.lib_equipe,
              jour, date_lim, no_conf
              from confrontation c, equipe e1, equipe e2, niveau n
              where c.no_niveau=n.no_niveau
              and c.equipe1=e1.no_equipe
              and c.equipe2=e2.no_equipe
              and e1.groupe='$poule'
              and c.no_conf not in (select no_conf from prono p, confrontation c
              where c.no_conf=p.no_conf);
    Cette requête ne me retourne aucune ligne.

    Quelqu'un aurait-il une idée ?

    Merci.
    Nulla dies sin linea

  2. #2
    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
    Points : 2 227
    Points
    2 227
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    c.no_conf not in (select no_conf from prono p, confrontation c
              where c.no_conf=p.no_conf);
    Il faut donc que c.no_conf ne soit pas dans la liste des ... c.no_conf !

    essaye avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    c.no_conf not in (select no_conf from prono);
    Mais il y a des méthodes plus efficace avec NOT EXISTS ou une jointure externe.
    J'affirme péremptoirement que toute affirmation péremptoire est fausse
    5ième élément : barde-prince des figures de style, duc de la synecdoque
    Je ne réponds jamais aux questions techniques par MP

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    314
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 314
    Points : 206
    Points
    206
    Par défaut
    j'avais déja essayé de la sorte
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    (select no_conf from prono p, confrontation c
              where c.no_conf=p.no_conf)
    et le résultat ne me retournais aucune ligne.
    Nulla dies sin linea

  4. #4
    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
    Points : 2 227
    Points
    2 227
    Par défaut
    Ce n'est pas ce que je t'ai proposé
    J'affirme péremptoirement que toute affirmation péremptoire est fausse
    5ième élément : barde-prince des figures de style, duc de la synecdoque
    Je ne réponds jamais aux questions techniques par MP

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    314
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 314
    Points : 206
    Points
    206
    Par défaut
    j'ai finalment opté pour les jointures externes. Merci
    Nulla dies sin linea

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

Discussions similaires

  1. Lister les enregistrements qui ne sont pas dans une table
    Par toss.net dans le forum Langage SQL
    Réponses: 3
    Dernier message: 04/10/2010, 11h25
  2. Réponses: 2
    Dernier message: 14/09/2010, 10h21
  3. Réponses: 2
    Dernier message: 20/06/2008, 10h20
  4. chercher les éléments d'une table B qui ne sont pas dans la table A
    Par Cupidon dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 11/01/2008, 13h40
  5. Réponses: 10
    Dernier message: 15/12/2006, 07h34

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