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 colonne présente dans In Select


Sujet :

Langage SQL

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 390
    Points : 222
    Points
    222
    Par défaut Afficher colonne présente dans In Select
    Bonjour,

    J'ai cette requête qui fonctionne bien mais j'ai besoin d'avoir la colonne
    Pays_n.idpays_n présente dans le In select( ... , dans mon premier select pour l'avoir en affichage. Mais je me trompe peut-être. En tout cas je ne vois pas comment faire çà.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Select Membre_n.identifiant_parrain As Identifiant_parrain,membre_n.nom_parrain As Nom_parrain, Membre_n.prenom_parrain As Prenom_parrain,parrainage.idparrainage As Idparrainage,
    Parrainage.identifiant_parrain As Identifiant_parrain_pa,parrainage.identifiant_enfant As Identifiant_enfant, Membre_n.zip_code_parrain As Zip_code_parrain
    From 
    Enfant_n, Parrainage, Membre_n 
    Where Enfant_n.identifiant_enfant = Parrainage.identifiant_enfant And Membre_n.identifiant_parrain = Parrainage.identifiant_parrain 
    And Membre_n.zip_code_parrain Like '51%' And Parrainage.identifiant_enfant 
    In ( Select Enfant_n.identifiant_enfant As Identifiant_enfant,centres_n.code_identifiant_centre As Code_identifiant_centre,pays_n.idpays_n As Idpays_n
    From Pays_n, Centres_n, Enfant_n Where Pays_n.idpays_n = Centres_n.idpays_n And Centres_n.code_identifiant_centre = Enfant_n.code_identifiant_centre 
    And Pays_n.idpays_n In (1) )
    Merci d'avance pour votre aide.

    A+

  2. #2
    Membre averti Avatar de mmathieu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Février 2005
    Messages : 35
    Points : 318
    Points
    318
    Par défaut
    et ta requête fonctionne ??
    lorsque que tu fais ton ".. identifiant IN (SELECT champ1, champ2...)" je ne pense pas que ça passe: si tu utilises le IN tu dois avoir dans ton SELECT qu'un seul champ!

    Je pense que tu pourrais te passe de la clause IN dans ta requête.
    N'ayant pas ta base de données sous les yeux, il m'est difficile de te donner qqch qui fonctionne à 100%, mais je te proposerais qqch du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    SELECT Membre_n.identifiant_parrain AS Identifiant_parrain,membre_n.nom_parrain AS Nom_parrain, Membre_n.prenom_parrain AS Prenom_parrain,parrainage.idparrainage AS Idparrainage,Parrainage.identifiant_parrain AS Identifiant_parrain_pa,parrainage.identifiant_enfant AS Identifiant_enfant, Membre_n.zip_code_parrain AS Zip_code_parrain, Enfant_n.identifiant_enfant AS Identifiant_enfant,centres_n.code_identifiant_centre AS Code_identifiant_centre,pays_n.idpays_n AS Idpays_n
    FROM Enfant_n, Parrainage, Membre_n, Pays_n, Centres_n
    WHERE Enfant_n.identifiant_enfant = Parrainage.identifiant_enfant
      AND Membre_n.identifiant_parrain = Parrainage.identifiant_parrain 
      AND Membre_n.zip_code_parrain LIKE '51%'
      AND Pays_n.idpays_n = Centres_n.idpays_n
      AND Centres_n.code_identifiant_centre = Enfant_n.code_identifiant_centre 
      AND Pays_n.idpays_n = 1

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 390
    Points : 222
    Points
    222
    Par défaut
    Oui elle fonctionne mais c'est du Hyperfile, alors la norme SQL !?

    Par contre ton code fonctionne nickel ou comment faire compliquer ...

    Encore merci pour ton aide !

    A+

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 390
    Points : 222
    Points
    222
    Par défaut
    Un peu trop optimiste.

    Le problème se pose qu'en je veux ceux qui ne sont pas dans le In ( Select...

    donc qu'en je fais Not In ( Select ...

  5. #5
    rsc
    rsc est déconnecté
    Membre éprouvé
    Avatar de rsc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 711
    Points : 918
    Points
    918
    Par défaut
    Je remets un peu d'ordre dans ta requête, en distinguant en particulier les clauses JOIN et WHERE :
    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
    SELECT 
      Membre_n.identifiant_parrain AS Identifiant_parrain,
      Membre_n.nom_parrain AS Nom_parrain, 
      Membre_n.prenom_parrain AS Prenom_parrain,
      Parrainage.idparrainage AS Idparrainage,
      Parrainage.identifiant_parrain AS Identifiant_parrain_pa,
      parrainage.identifiant_enfant AS Identifiant_enfant,
      Membre_n.zip_code_parrain AS Zip_code_parrain,
      Enfant_n.identifiant_enfant AS Identifiant_enfant,
      Centres_n.code_identifiant_centre AS Code_identifiant_centre,
      Pays_n.idpays_n AS Idpays_n
    FROM Enfant_n
    JOIN Parrainage
      ON (Enfant_n.identifiant_enfant = Parrainage.identifiant_enfant)
    JOIN Centres_n
      ON (Centres_n.code_identifiant_centre = Enfant_n.code_identifiant_centre)
    JOIN Pays_n
      ON (Pays_n.idpays_n = Centres_n.idpays_n)
    JOIN Membre_n
      ON (Membre_n.identifiant_parrain = Parrainage.identifiant_parrain)
    WHERE 
      (Membre_n.zip_code_parrain LIKE '51%')
      AND (Pays_n.idpays_n = 1)
    et je constate, si je ne me trompe pas, que tu recherchais les enfants rattachés à un centre du pays 1, et dont le parrain a un ZipCode commençant par 51.

    Et maintenant, peux-tu m'expliquer clairement ce que tu voulais chercher avec le NOT IN (SELECT) ? Ensuite, je pourrai peut-être t'aider

Discussions similaires

  1. Réponses: 16
    Dernier message: 18/05/2010, 18h15
  2. 2 colonnes "count" dans un select ?
    Par Chabouille dans le forum Langage SQL
    Réponses: 4
    Dernier message: 02/11/2009, 16h28
  3. [MySQL] retourner une colonne inexistante dans un SELECT
    Par webtheque dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 28/05/2009, 21h11
  4. [MySQL] Afficher mes variables dans un <select>
    Par sinifer dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 24/04/2009, 12h21
  5. Réponses: 3
    Dernier message: 03/05/2007, 11h06

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