Bonjour,


J'ai une requete (moche) qui me renvoit 15 lignes (5 enregistrements dans la table PortZone et 3 dans la table PortPoid)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
select * from PortZone, PortPoid, PortZoneHasPortPoid
where PortZoneHasPortPoid.Fk_Zone =* PortZone.Id
AND PortZoneHasPortPoid.Fk_PortPoid =* PortPoid.id
Quand j'execute cette meme requete dans enterprise manager (MSSQL 2000), ce dernier retouche la syntaxe pour me proposer

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
SELECT     *
FROM         PortZone RIGHT OUTER JOIN
                      PortZoneHasPortPoid ON PortZoneHasPortPoid.FK_Zone = PortZone.Id LEFT OUTER JOIN
                      PortPoid ON PortZoneHasPortPoid.FK_PortPoid = PortPoid.Id
Du coup j'ai 4 résultats.


Je modifie donc cette requete pour avoir

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
SELECT     *
FROM         PortZone FULL OUTER JOIN
                      PortZoneHasPortPoid ON PortZoneHasPortPoid.FK_Zone = PortZone.Id FULL OUTER JOIN
                      PortPoid ON PortZoneHasPortPoid.FK_PortPoid = PortPoid.Id
et la j'ai 7 résultats ....

j'ai donc re tenté ma chance avec

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
SELECT     *
FROM         PortZone FULL JOIN
                      PortZoneHasPortPoid ON PortZoneHasPortPoid.FK_Zone = PortZone.Id FULL JOIN
                      PortPoid ON PortZoneHasPortPoid.FK_PortPoid = PortPoid.Id
Mais je n'obtiens toujours que 7 resultats ....


Quelle syntaxe est équivalente a where =* svp?
Je suis un peu perdue d'un coup !