Bonjour,
J'ai une table (qui n'est pas de moi):
produit_element
ID_produit | ID_element | type_element
--------------------------------------
26 | 96 |0
26 | 94 |0
26 | 92 |1
92 | 13 |0
Elle contient des produits, des sous-produits et des consituants.
Un produit, c'est par exemple dans la la ligne verte l'ID 26, il possède un composant 96 car le type_element = 0.
On peut avoir des sous-produits rattaché à des produits comme dans la ligne bleu (ID_element 92) car type_element = 1.
Mon soucis, c'est de récupérer tous les conctituants d'un produit. Il me faut imbriquer un select dans un select (enfin je pense) pour atteindre le constituant ayant pour ID_element = 13.
J'en suis là pour le moment:
et cela me donne une erreur:
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 ( SELECT distinct c.ID, c.reference FROM constituant c, produit_element pe WHERE pe.ID_produit = 123 AND pe.ID_element = c.ID AND pe.type_element = 0 ) UNION ( SELECT distinct c.ID, c.reference FROM constituant c, produit_element pe ( SELECT distinct pe.ID_element FROM produit_element pe WHERE pe.ID_produit = 123 AND pe.type_element = 1 ) AS sp WHERE pe.ID_produit = sp.ID_element AND pe.ID_element = c.ID AND pe.type_element = 0 )
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '( SELECT distinct pe.ID_element FROM produit_element pe WHE' at line 12
Je poursuis ma recherche/apprentissage, mais une petite aide n'est pas de refus. Merci d'avance.
edit:
A oui j'ai oublié d'expliquer que la table "constituant" me permet de transformer l'ID_element en reference plus lisible genre "CARTE ETOR". La valeur 123 correspond à un ID_produit ayant des constituant directement et des sous-produits.
Partager