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 :

pb Requete parent


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    490
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 490
    Par défaut pb Requete parent
    bonjour,
    j'ai une table avec trois champs :

    ------------------------------------------------
    intitulé----numGenre------numGenreParent-------
    ------------------------------------------------
    toto---------1-----------------null-------------
    tata---------2------------------1--------------


    comment faire pour avoir le nom du parent de tata ?

    j'ai essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT intituleGenre as Parent
    From table where numGenre = 
    (select numGenreParent from table)
    mais là je bloque totalement...merci de votre aide

  2. #2
    Membre éprouvé
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Par défaut
    Si tu as plus d'un numGenre tu ne dois pas mettre = mais IN
    et tu dois mettre ta condition dans ton second select

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT intituleGenre AS Parent
    FROM matable WHERE numGenre = 
    (SELECT numGenreParent FROM matable WHERE intituleGenre = 'tata')

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT intituleGenre AS Parent
    FROM matable WHERE numGenre IN 
    (SELECT numGenreParent FROM matable WHERE intituleGenre = 'tata' OR intituleGenre = '...')
    Jasmine,

  3. #3
    Membre Expert

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT A.INTITULÉ
    FROM   DVP A
      INNER JOIN DVP B
        ON A.NUMGENRE = B.NUMGENREPARENT
    WHERE B.INTITULÉ = 'tata';
    PS : supprime les accents dans les noms de tes colonnes.

  4. #4
    Membre éprouvé
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Par défaut
    Les JOIN sont-ils mieux que les SELECT imbriqués?


    Jasmine,

  5. #5
    Membre Expert

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Par défaut
    Citation Envoyé par Jasmine80
    Les JOIN sont-ils mieux que les SELECT imbriqués?
    Ils sont surtout plus lisibles maintenant pour ce qui est des performances, cela peut dépendre de ton SGBD.
    Je ne suis pas assez calé pour te répondre.
    Ton SGBD doit offrir des outils d'analyse des performances, creuse de ce côté

  6. #6
    Membre éprouvé
    Inscrit en
    Mai 2006
    Messages
    139
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Mai 2006
    Messages : 139
    Par défaut
    Par exemple, si ton SGBD est MySQL, essaie de faire :
    Ca te montrera le fonctionnement de ta requête, la façon dont l'interprète ton SGBD.
    http://dev.mysql.com/doc/refman/5.0/fr/explain.html

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : Côte d'Ivoire

    Informations forums :
    Inscription : Août 2006
    Messages : 91
    Par défaut
    donne ns la stucture de la table 'TABLE'

    Sinon je te conseille de faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT parent.nom
    FROM enfant, parent
    where parent.numGenreParent=enfant.numGenreParent
    nb: parent est la table des parents et et enfants, la table des enfants.
    tu peux adapter ces noms selon ceux que tu utilises actuellement ds ta bd.

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    490
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 490
    Par défaut
    Citation Envoyé par Magnus
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT A.INTITULÉ
    FROM   DVP A
      INNER JOIN DVP B
        ON A.NUMGENRE = B.NUMGENREPARENT
    WHERE B.INTITULÉ = 'tata';
    PS : supprime les accents dans les noms de tes colonnes.
    a quoi correspondent DVP A ET B ?

    oui oui je supprime les accents de mes intitulés, là c'était pour l'exemple....

  9. #9
    Membre éprouvé
    Inscrit en
    Mai 2006
    Messages
    139
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Mai 2006
    Messages : 139
    Par défaut
    Citation Envoyé par maysa
    a quoi correspondent DVP A ET B ?
    La requête est une auto-jointure :
    - DVP est la table
    - A et B sont des alias donnés à la table

    L'auto jointure permet d'effectuer une jointure réflexive entre ta clé primaire et le numéro de parent associé.

Discussions similaires

  1. relation Parent/Enfant sur la meme table et requete SQL
    Par tatayoyo dans le forum Langage SQL
    Réponses: 5
    Dernier message: 17/04/2007, 18h57
  2. Requête pour compter le nombre de fils de chaque parent
    Par santana2006 dans le forum Langage SQL
    Réponses: 8
    Dernier message: 25/08/2006, 16h08
  3. Réponses: 5
    Dernier message: 27/06/2006, 20h27
  4. Réponses: 6
    Dernier message: 08/05/2006, 14h18
  5. Requete pour rechercher tous les parents
    Par richard038 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 28/11/2005, 21h37

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