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 :

Encore une question, pour retrouver 2 valeur d'une table


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2002
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 88
    Points : 49
    Points
    49
    Par défaut Encore une question, pour retrouver 2 valeur d'une table
    Je dispose maintenant d'une table SQL me donnant la localisation d'une salle de classe:

    donc voila la table:

    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
    24
    25
    26
    27
    28
    29
    30
    31
     
    +---------------+---------------+------+------------+
    | id            | parent        | type | name       |
    +---------------+---------------+------+------------+
    | 6-3348-5072-5 |               | ci   | Commune    |
    | 4-1611-6110-7 | 6-3348-5072-5 | to   | Ville      |
    | 0-5670-3537-9 | 4-1611-6110-7 | di   | District 1 |
    | 0-5715-6076-8 | 4-1611-6110-7 | di   | District 2 |
    | 3-1716-2428-1 | 1-0325-7401-1 | ro   | Classe 1   |
    | 5-4588-7332-7 | 1-0325-7401-1 | ro   | Classe 2   |
    | 4-5405-2068-7 | 1-0325-7401-1 | ro   | Classe 3   |
    | 7-5381-2167-6 | 1-0325-7401-1 | ro   | Classe 4   |
    | 5-5117-8855-4 | 1-0325-7401-1 | ro   | Classe 5   |
    | 4-4863-5857-0 | 7-2642-8830-7 | ro   | Classe 6   |
    | 5-2480-6342-6 | 7-2642-8830-7 | ro   | Classe 7   |
    | 0-7804-7343-4 | 7-2642-8830-7 | ro   | Classe 8   |
    | 2-4452-3342-9 | 7-2642-8830-7 | ro   | Classe 9   |
    | 4-3618-3304-4 | 7-2642-8830-7 | ro   | Classe 10  |
    | 4-2624-3786-8 | 3-1775-6807-3 | ro   | Classe 1   |
    | 0-3357-3502-9 | 3-1775-6807-3 | ro   | Classe 2   |
    | 7-6241-1136-5 | 3-1775-6807-3 | ro   | Classe 3   |
    | 7-1858-2781-7 | 0-1353-1411-9 | ro   | Classe 4   |
    | 0-4037-0222-4 | 0-1353-1411-9 | ro   | Classe 5   |
    | 6-7024-5741-3 | 0-1353-1411-9 | ro   | Classe 6   |
    | 2-7357-5864-8 | 0-5670-3537-9 | bu   | Building 1 |
    | 1-0325-7401-1 | 2-7357-5864-8 | fl   | Etage 0    |
    | 7-2642-8830-7 | 2-7357-5864-8 | fl   | Etage 1    |
    | 8-5033-7764-0 | 0-5715-6076-8 | bu   | Building 3 |
    | 3-1775-6807-3 | 8-5033-7764-0 | fl   | Etage 0    |
    | 0-1353-1411-9 | 8-5033-7764-0 | fl   | Etage 1    |
    | 0-6353-8433-7 | 1-0325-7401-1 | ro   | Classe 1   |
    Moi je cherche a trouver une requete qui me trouve le building dans laquelle se situe une salle de classe.

    J'arrive a obtenir cela, en faisant plusieur requete SQL successive en PERL, mais je pense qu'il existe un moyen de le faire en une seule requete non?

    Parceque moi je boucle ma requete SQL tant que je n'obtient pas le type BU qui signifie que j'ai atteint le building d'une salle de classe.

    Je cherche donc a apprendre comment faire en une seule requete.

    Merci

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 115
    Points : 125
    Points
    125
    Par défaut
    avec une clause genre : where type = 'bu' ca ne convient pas?

  3. #3
    Membre chevronné

    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
    Points : 1 775
    Points
    1 775
    Par défaut
    avec une clause genre : where type = 'bu' ca ne convient pas?
    nan nan ce n'est pas aussi simple parce qu'il faut faire du récursif il me semble
    -> je me rappelle avoir déjà vu cette question avec exactement les mêmes données ; c'est une coïncidence danje ou tu as posé cette question ?
    Modérateur des forums Oracle et Langage SQL
    Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 115
    Points : 125
    Points
    125
    Par défaut
    ok j'avais mal compris la question et mal compris la structure de la table.

    En meme temps je trouve la table tres compact et ca doit simplifier la base de donnée, mais je sais pas si c'est bien pensé d'un point de vu accès.

    je ne sais pas faire une requete récursive désolé

  5. #5
    Membre du Club
    Inscrit en
    Décembre 2002
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 88
    Points : 49
    Points
    49
    Par défaut
    Non j'ai effectivement deja posté cette question.

    Mais comme je l'ai dit je cherche une solution pour faire le select en une seule passe, et pas en boucle comme je le fais actuellement

  6. #6
    Membre expert
    Avatar de TheLeadingEdge
    Inscrit en
    Mai 2005
    Messages
    1 199
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 1 199
    Points : 3 103
    Points
    3 103
    Par défaut
    bonsoir,

    Si ta structure de navigation est 100% hierarchique ( i.e. classe est tjours ds 1 étage, 1 étage est tjours ds 1 batiment etc ...), ca devrait te donner ce que tu veux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    select 	bu.name as building,
    	ro.name as room
    from  	classe as bu
    inner join  classe as fl
    on 	fl.parent = bu.id
    and 	fl.type = 'fl'
    inner join  classe as ro
    on 	ro.parent = fl.id
    and 	ro.type = 'ro'
    order by 1,2;
     
    connect reset;
    à +

Discussions similaires

  1. Réponses: 5
    Dernier message: 31/05/2015, 20h57
  2. une macro pour déplacer certaines valeurs d'une colonne à l'autre
    Par serna dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/02/2015, 14h45
  3. Réponses: 6
    Dernier message: 29/10/2008, 16h06
  4. Réponses: 6
    Dernier message: 29/11/2007, 16h15
  5. Réponses: 17
    Dernier message: 03/10/2005, 11h16

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