Auteur de questions
Fusionner deux tables

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
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
- Proposé comme réponse Jordane Aucagne mardi 5 juillet 2016 07:17
-
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
-
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