none
Fusionner deux tables RRS feed

  • Question

  • Bonjour, permettez moi de vous expliquer mon problème :

    Table 1 :

    1 | info1
    2 | info2
    3 | info3
    4 | info4

    Table 2 :

    1 | equivalent1
    2 | equivalent2

    Résultat souhaité :

    1 | info1 | equivalent1
    2 | info2 |    ----
    3 | info3 | equivalent2
    4 | info4 |    ----

    Résultat obtenu pour le moment :

    1 | info1 | equivalent1
    3 | info3 | equivalent2

    Merci de M'aider
    vendredi 24 juin 2016 10:33

Toutes les réponses

  • Bonjour,

    Tu peux faire ce que tu veux en utilisant une jointure externe au lieu d'un INNER JOIN.

    Le code ci-dessous devrait répondre à tes attentes : 

    SELECT T1.ID, T1.INFO, T2.EQUIVALENT
    FROM TABLE1 T1
    LEFT JOIN TABLE2 T2 ON T1.ID = T2.ID
    
    Si tu veux plus de détails sur les jointures externes tu peux consulter ce lien : https://technet.microsoft.com/fr-fr/library/ms187518(v=sql.105).aspx

    lundi 4 juillet 2016 08:06
  • Bonjour, je ne vois pas comment vous voulez faire la jointure, si cela se fait du niveau du champ id, pourquoi est-ce que le résultat à obtenir ne serait pas comme cela:

    1 | info1 | equivalent1
    2 | info2 | equivalent2
    3 | info3 |    ----
    4 | info4 |    ----

    ?

    Après pour la jointure, j'ai l'habitude de faire ainsi :

    SELECT ID, INFO, (SELECT EQUIVALENT FROM TABLE_EQUIVALENCE WHERE TABLE_EQUIVALENCE.ID=TABLE_INFO.ID)
    FROM TABLE_INFO
    ORDER BY 1
    • Modifié SquallFF8 jeudi 7 juillet 2016 10:33
    jeudi 7 juillet 2016 10:26
  • 3 solutions

    Sol1:

    SELECT f1.ID, f1.INFO, f1.EQUIVALENT

    FROM TABLEINFO f1

    LEFT JOIN TABLEEQUIVALENCE  f2 ON f1.ID = f2.ID

    Sol2:

    SELECT f1.ID, f1.INFO, (SELECT top 1 f2.EQUIVALENT FROM TABLEEQUIVALENCE f2 WHERE f2.ID=f1.ID) as EQUIVALENT

    FROM TABLEINFO f1

    Sol3:

    SELECT f1.ID, f1.INFO, f3.EQUIVALENTFROM TABLEINFO f1

    outer apply

    (

    SELECT f2.EQUIVALENT FROM TABLEEQUIVALENCE f2 

    WHERE f2.ID=f1.ID

    ) f3

    • Proposé comme réponse Johnny Grun dimanche 10 juillet 2016 02:03
    samedi 9 juillet 2016 09:28