Jai des problèmes pour joindre trois tables. Cela fonctionne bien lorsque jutilise la même requête pour joindre deux tables (après avoir supprimé LEFT OUTER JOIN C ON B.No = C.No
). Cependant, cela ne fonctionne pas lorsque jutilise trois tables.
Voici ma requête
SELECT A.Name, B.Quantity, C.Quantity FROM A LEFT OUTER JOIN B ON A.ID = B.ID LEFT OUTER JOIN C ON B.No = C.No;
Commentaires
Réponse
MS-Access est plutôt pointilleux quant à ce quil veut les jointures à former. Ajoutez des parenthèses:
SELECT A.Name, B.Quantity, C.Quantity FROM ( A LEFT OUTER JOIN B ON A.ID = B.ID ) LEFT OUTER JOIN C ON B.No = C.No ;
La syntaxe SQL standard – et la plupart des autres SGBD – ne nécessitent pas de parenthèses dans FROM
clause, bien que vous soyez autorisé à les utiliser pour plus de clarté.
Commentaires
- Merci pour votre réponse. Ça a marché! Merci beaucoup. Je savais que ma requête était juste, jai juste manqué la parenthèse. Encore merci. Dieu vous protège! 🙂
- La plupart des autres SGBD nen ont pas besoin (et à juste titre).
- Oui. Cest ' que cest la première fois que jutilise MS Access. Je ' suis tellement habitué à SQL Server!
- @deppz: Vous savez quil existe une édition SQL-Server Express? (pas avec toutes les capacités des éditions supérieures, mais cela peut répondre à vos besoins).
- Oui, jai ' utilisé cela avant. Pour cette tâche particulière, je nai eu quà utiliser MS Access. Merci pour votre suggestion.
FROM
inclut plus dune jointure.