Partage
  • Partager sur Facebook
  • Partager sur Twitter

Jointure : full outer join

    15 mai 2011 à 18:06:55

    Salut,
    j'ai une petite question sur la jointure "full outer join".
    J'essaie donc de faire une jointure entre deux tables comme ceci :

    CREATE TABLE nouvelle_table AS
    SELECT * FROM table2 
    JOIN table1
    ON table1_code = table2_code AND table1_jour = table2_jour AND table1_mois = table2_mois AND table1_annee = table2_annee
    ;>
    



    J'aimerais savoir pourquoi ma nouvelle table contient un nombre d'enregistrement plus faibles que la plus grande de mes tables servant à la jointure (ici table2) ?
    Je pensais que cette jointure allait conserver tous les enegistrements.

    Merci à vous. :D


    • Partager sur Facebook
    • Partager sur Twitter
      15 mai 2011 à 18:44:45

      C'est pas une FULL OUTER JOIN ça, c'est une jointure interne tout à fait normale. D'ailleurs, MySQL ne connait pas le FULL OUTER JOIN (il faudrait faire LEFT OUTER JOIN ... UNION RIGHT OUTER JOIN ...).

      La jointure interne (celle que tu fais) va chercher toutes les lignes où tous les critères sont respectés, et "oublie" les autres. Au mieux, tu vas avoir autant de lignes que ta table ayant la moins de lignes. Il est donc tout à fait normal que cette requête retourne un nombre de lignes plus faible.

      Par ailleurs, il existe le type DATE, ça t'éviterait de faire des tonnes de colonnes pour rien.
      • Partager sur Facebook
      • Partager sur Twitter
        22 mai 2011 à 11:22:17

        Ok merci de ta réponse. :)
        • Partager sur Facebook
        • Partager sur Twitter

        Jointure : full outer join

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown