Sur la ligne
RIGHT OUTER JOIN Societes_tbl ON Link_Contacts_tbl.CtacSociID = Societes_tbl.SociID
Il est fait référence à une deuxième table Societes_tbl. Le SGBD ne peut pas savoir lors de l'appel de Societes_tbl.SociID (et aussi dans le SELECT) s'il s'agit de la table du FROM ou de la table qui vient d'être jointurée.
Il n'empêche que cette requête me semble bien complexe. Je ne suis pas sûre que les jointures à gauches et à droites soient nécessaires.
Si vous souhaitez afficher les informations d'une société, ses adresses et les noms des contacts de cette société, voici la requête que je vous propose (sous réserve que j'ai bien deviné la composition des tables)
1 2 3 4 5 6 7 8 9 10 11
| SELECT Societes_tbl.SociID,
Societes_tbl.SociNom, Societes_tbl.SociTel,
Adresses_tbl.AdrsID, Adresses_tbl.AdrsLigne1,
Adresses_tbl.AdrsLigne2,
Personnes_tbl.PersID,
Personnes_tbl.PersNom,
Personnes_tbl.PersPrenom
FROM Societes_tbl
INNER JOIN Adresses_tbl ON Societes_tbl1.SociID = Adresses_tbl.AdrsSociID
INNER JOIN Link_Contacts_tbl ON Link_Contacts_tbl.CtacSociID = Societes_tbl.SociID
INNER JOIN Personnes_tbl ON Personnes_tbl.PersID = Link_Contacts_tbl.CtacPersID |
De manière générale, je préfère les jointures écrites de cette façon :
1 2 3
| SELECT table1.champ1 ...
FROM table1,table2
WHERE table1.champ1=table2.champ1 |
Partager