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 :

sql recherche sur plusieurs table / commande IN


Sujet :

Langage SQL

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 8
    Points : 5
    Points
    5
    Par défaut sql recherche sur plusieurs table / commande IN
    Hello!

    Bon voila ma requête me permettant de faire les recherches

    tb_candidat
    tb_console
    tb_candidat_has_tb_console

    1 candidat peut avoir plusieurs consoles
    une console peut appartenir à plusieurs candidats

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    select * from tb_candidat c 
    where c.id_candidat IN ( 
         select distinct tb_candidat_id_candidat from tb_console_has_tb_candidat cc, tb_console co 
         where cc.tb_console_id_console = co.id_console and co.nom IN ('PS2','XBOX'))
    )
    donc la je sort tous les candidats possédant à la fois une PS2 et une Xbox mais j'aurais besoin de faire un système permettant de dire :
    je veux des candidat possédant une PS2 et une XBOX mais pas de ps3 par exemple

    Comment faire pour procéder à cela?

    Cordialement

  2. #2
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 283
    Points : 11 742
    Points
    11 742
    Par défaut
    tu peux ajouter un NOT IN, mais ce n'est sans doute pas la façon la plus efficace de faire.

    Quel est ton SGBD ?
    Antoun
    Expert Tableau, Essbase, BO, SQL

    La bible d'Essbase, 2ème édition

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    j'ai testé Not In, ca ne marche pas...
    j'suis sous Mysql

  4. #4
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    Bonjour,

    essai alors par des jointures pour remplacer le NOT IN

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT * FROM table1 WHERE champ1 NOT IN (SELECT champ1 FROM table2)
    C'est égal à

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT table1.* FROM table1 LEFT JOIN table2
    			ON table1.champ1=table2.champ1
    			WHERE table2.champ1 IS NULL
    ce doit être possible...?
    « Je ne cherche pas à connaître les réponses, je cherche à comprendre les questions. »
    - Confucius -

    Les meilleurs cours, tutoriels et Docs sur les SGBD et le SQL
    Tous les cours Office
    Solutions d'Entreprise



  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    jvais voir mais bon jvois pas pourquoi avec ca marcherait avec JOIN plutôt qu'une jointure dans le where....

Discussions similaires

  1. Recherche sur plusieures tables en PL/SQL
    Par anas.eh dans le forum PL/SQL
    Réponses: 2
    Dernier message: 17/09/2008, 14h57
  2. Recherche sur plusieures tables en SQL
    Par anas.eh dans le forum Langage SQL
    Réponses: 6
    Dernier message: 10/09/2008, 12h00
  3. [SQL] SQL Requete sur plusieurs tables/traitement particulier
    Par fluojet dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 12/02/2007, 19h59
  4. Réponses: 1
    Dernier message: 06/12/2006, 18h25
  5. [MySQL] Recherche sur plusieurs tables
    Par hubidev dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 21/03/2006, 10h42

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