Je viens de commencer réellement mon stage et pour cela, il me faut extraire des données d'une base de données Access par une requête SQL depuis PHP en utilisant PDO. Pour cela j'ai eu besoin de faire plusieurs INNER JOIN (j'ai simplifié à 2 pour l'exemple) et une fois le deuxième INNER JOIN ajouté l'erreur suivante s'est produite :
[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression
Voici la requête produisant l'erreur :
SELECT Articles.code, Articles.libellélong, Articles.libellécourt, ArticlesTarifs.TTC, ArticlesStocks.QtéStock
FROM `Articles`
INNER JOIN `ArticlesTarifs` ON (Articles.N°) = ArticlesTarifs.N°Article
INNER JOIN `ArticlesStocks` ON (Articles.N°) = ArticlesStocks.N°Article
WHERE Articles.bWeb = 1
En fait, il suffit de concaténer tout les INNER JOIN directement dans le FROM de la requête et le tour est joué :
SELECT Articles.code, Articles.libellélong, Articles.libellécourt, ArticlesTarifs.TTC, ArticlesStocks.QtéStock
FROM (
(`Articles` INNER JOIN `ArticlesTarifs` ON Articles.N° = ArticlesTarifs.N°Article)
INNER JOIN `ArticlesStocks` ON Articles.N° = ArticlesStocks.N°Article)
WHERE Articles.bWeb = 1
Ainsi on a une requête sql sur la forme :
SELECT *
FROM (table 1 INNER JOIN `table2` ON table1.id = table2.id) INNER JOIN `table3` ON table1.id = table3.id)
Je reparlerai sans doute de PDO qui est vraiment une classe formidable