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.
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.
× 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.