Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Requêtes
Requêtes Forum d'entraide sur les requêtes MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/11/2010, 14h20   #1
Invité de passage
 
Inscription : novembre 2010
Messages : 2
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 2
Points : 1
Points : 1
Par défaut requête récursive (rechercher tous les descendants d'un élément)

bonjour à tous,

habituellement j'arrive à trouver réponse sur internet mais là je sèche... je viens donc humblement quérir votre savoir.

quand je construis mes bases j'ai une "relation récursive non hiérarchique" qui apparait (pour faire plus simple je vais faire une analogie avec les pièces qui composent une(des) voiture(s))
(c'est juste un exemple)

une voiture est composée de pièces:
- voiture1 (moteur, transmission, roues,..)

à leurs tour ces pièces sont composées d'autre pièces:
- transmission (engrenages, ...)
- moteur (boite de vitesse, embrayage, vis, ...)

et ainsi de suite:
- boite de vitesse (engrenages, vis, ...)
- engrenages (pignons, couronnes, ...)




dans se cas j'utilise donc les tables: pièces et éléments

[pièces ] primaire(id_pièces )
id_pièces
nom (UNIQUE)
...

[éléments] primaire(composant, composé)
composant
composé




dans la table [éléments] la pièce engrenages est donc :
composée de : pignons, couronnes, ...
un composant de : boite de vitesse, transmission, ...


si je veux afficher les composés 'proches' d'un élément la requête est juste :
Code :
1
2
3
4
SELECT composé 
FROM éléments, pièces 
WHERE id_pièces=composant 
  AND nom='engrenages';

mais comment faire (si c'est possible) une requête qui me donne TOUTES les pièces qui entrent dans la fabrication d'une autre pièce ?

mis à part intégrer une requête dans une boucle qui recherche dans les liens composé/composant jusqu'aux derniers (ce qui risque de faire pas mal de requêtes) , je vois pas...


Si vous avez une solution ou même des idées je suis tout ouïe.

En tout cas merci d'avoir lu

pour info:
j'ai un serveur HTML (easyphp) et je code en PHP.
kouriak est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/11/2010, 14h24   #2
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 10 928
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 10 928
Points : 18 117
Points : 18 117
Envoyer un message via MSN à CinePhil
Il faudrait une requête récursive... ce que ne connaît pas MySQL !

Change de SGBD !

Au passage, la syntaxe normalisée depuis 1992 pour les jointures utilise l'opérateur JOIN.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/11/2010, 17h32   #3
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 927
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 10 927
Points : 17 720
Points : 17 720
A lire sur les "manques" de MySQL :
http://blog.developpez.com/sqlpro/p9...udre-aux-yeux/

A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/11/2010, 18h26   #4
Invité de passage
 
Inscription : novembre 2010
Messages : 2
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 2
Points : 1
Points : 1
merci a tous les 2,

après alors googelisé "requête récursive mysql", je me suis senti un peu con d'avoir poser cette question. DSL

je vais donc passer à PostgreSQL (dispo sur free en plus)
et demain je me coucherais moins noob

bonne soirée.
kouriak est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h22.


 
 
 
 
Partenaires

Hébergement Web