Sql requete sur une mm table

bonjour,

j ai une table article dans la quelle se trouve les champs suivant
CLASSEMENT et ARTICLE,
je voudrais creer a partir de cette table la table classement
avec comme champ id_classment, id_pere et id_fils
ou id_pere correspond au champ classement de la table
article et id_fils au champ article,
et je souhaite recuperer les id_article de classement et article
qui appartiennent a la table art (id_article, code_article, libelle_article) car classement et article sont des code article qui
sont deja mis dans la table art

voici ma requete

select id_article as id_pere, id_article as id_fils
from articles inner join art as t1 on
t1.classement = code_article left join art
as t2 on t2.article=code_article;

pour le moment ce n est pas une requete de creattion car
celle ci ne marche deja pas

j ai une erreur de syntaxe mais je ne trouve pas ou ?
merci

5 réponses

  1. c est la base de donne mysql mais je pourrais pas te dire la version
    1. si c mysql je ve essayer de t'aider
      je pense qu'une jointuferai l'afaire
      select ??? from atr as art1, art as art2 where ???


      je doit partir, si t'a pas trouve on vera ca demain.
      1. j ai toujours une erreur de syntaxe, voici ma requete

        select id_article as id_pere, id article as id_fils
        from art, article as t1, article as t2
        where t1.CLASSEMENT = code_article and t2.ARTICLE=code_article;
      2. je n ai plus d erreur mais j ai plus ARTICLE que de CLASSEMENT
        je dois faire une jointure droite, parce que
        avec cette requete

        select id_article as id_pere, id_article as id_fils
        from articles, article as t1, article as t2
        where t1.CLASSEMENT = code_article and t2.ARTICLE=code_article;

        j obtient autant de champ d un cote que de l autre
    2. essaye de metre ca
      select t1.id_article as id_pere, t2.id article as id_fils 
      from art, article as t1, article as t2 
      where t1.CLASSEMENT = code_article and t2.ARTICLE=code_article;
      1. dans ma table article, il n y a pas de champ id_article,
        ce champ n est que dans la table art

        table art
        ------------------------------------------------
        id_article | code_article | libelle_article | ------------------------------------------------
        1 | 100 001 | Zamack en pl|
        2 | 100 003 | Zamack en pl|
        3 | 100 004 | Zamack en pl|

        table article

        ------------------------------
        classement | article |
        ------------------------------
        100 003 | 100 001 |
        100 003 | 100 003 |
        100 003 | 100 004 |

        voici la table que j aimerai obtenir

        table classement
        ------------------------------------------
        id_classement | id_pere | id_fils | ------------------------------------------
        1 | 2 | 1 |
        2 | 2 | 2 |
        3 | 2 | 3 |

        en sachant qu il a plus d article dans la table article
        que de classement
    3. alors, c art qui doit etre jointe 2 fois avec art1 et art2
      et non pas article

      select art1.id_article as id_pere, art2.id_article as id_fils 
      from article, art as art1, art as art2 
      where article.CLASSEMENT = art1.code_article and article.ARTICLE=art2.code_article; 
      1. merci beaucoup ca marche :)