Jointure de 2 Tables

Petit nouveau ! | 1 Messages

22 oct. 2013, 21:36

Bonjour, j’aimerais avoir un peu d'aide sur la jointure de 2 tables, je souhaite avoir tous les records des 2 tables qui ont une date:

Table 1
Date-----------Entrée------Sortie
2013/10/14-------7-----------5
2013/10/15-------4-----------8
2013/10/17-------8-----------2
2013/10/18-------5-----------6

Table 2
Date-----------Champ1
2013/10/14-------3
2013/10/16-------5
2013/10/17-------2
2013/10/18-------4

Résultat souhaité
Date-----------Entrée------Sortie------Champ1
2013/10/14-------7-----------5-----------3
2013/10/15-------4-----------8----------NULL
2013/10/16-----NULL--------NULL---------5
2013/10/17-------8-----------2-----------2
2013/10/18-------5-----------6-----------4

Dans le résultat on constate que pour les journées du 15 et du 16 dans une des 2 tables il n'y a pas de données, mais les dates sortent.

Merci de votre aide

sdionne

ViPHP
ViPHP | 928 Messages

23 oct. 2013, 11:14

SELECT * FROM Table1 a LEFT JOIN Table2 b ON a.Date = b.Date
?

Edit : autant pour moi j'avais pas vu qu'il fallait dans les deux sens, donc ça ne marchera pas avec un left join.

Mammouth du PHP | 571 Messages

23 oct. 2013, 14:22

en fait c'est l'union de 2 jointures externes:
sous mysql:
SELECT table1.date,table1.entree,table1.sortie,table2.champ FROM table1 LEFT JOIN table2 ON table1.date=table2.date 
UNION
SELECT table2.date,table1.entree,table1.sortie,table2.champ FROM table2 LEFT JOIN table1 ON table1.date=table2.date;

ou encore avec la directive FULL OUTER JOIN de SQL2 (non supportée par mysql ) sous oracle:
SELECT table1.date,table1.entree,table1.sortie,table2.champ FROM table1 FULL OUTER JOIN table2 ON table1.date=table2.date