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

  • Si vous configurez vos jointures à laide du mode Création du concepteur de requêtes Access, il ajoutera les parenthèses requises par Access lorsque FROM inclut plus dune jointure.

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.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *