Double innner
sqlDebutant
-
sqlDebutant -
sqlDebutant -
Bonjour à tous ,
J'utilise c# pour me connecté à une base de donnée avec Microsoft.Jet.OleDb.4.0;
quand je lance ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
il me sort :
Une exception non gérée du type 'System.Data.OleDb.OleDbException' s'est produite dans System.Data.dll
Informations supplémentaires : Erreur de syntaxe dans la clause FROM.
alors que
Fonctionne bien
et
Fonctionne bien aussi
D'avance merci pour tout aiguillage
J'utilise c# pour me connecté à une base de donnée avec Microsoft.Jet.OleDb.4.0;
quand je lance ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
SELECT *
FROM `Tarclient` INNER JOIN
(SELECT `aaaacd` FROM `Article` IN 'C:\\Mpb\\Bdd\\Article.mdb'
INNER JOIN
(SELECT `CodArt` FROM `StockMag` IN 'C:\\Mpb\\Bdd\\StockMag.mdb'
) `JOIN_StockMag`
ON `JOIN_StockMag`.`CodArt` = `Article`.`aaaacd`
) `JOIN_Article`
ON `JOIN_Article`.`aaaacd` = `Tarclient`.`aoaacd`
il me sort :
Une exception non gérée du type 'System.Data.OleDb.OleDbException' s'est produite dans System.Data.dll
Informations supplémentaires : Erreur de syntaxe dans la clause FROM.
alors que
SELECT TOP * FROM `Tarclient` INNER JOIN (SELECT `CodArt` FROM `StockMag` IN 'C:\\Mpb\\Bdd\\StockMag.mdb' ) `JOIN_StockMag` ON `JOIN_StockMag`.`CodArt` = `Tarclient`.`aoaacd`
Fonctionne bien
et
SELECT * FROM `Tarclient` INNER JOIN (SELECT `aaaacd` FROM `Article` IN 'C:\\Mpb\\Bdd\\Article.mdb' ) `JOIN_Article` ON `JOIN_Article`.`aaaacd` = `Tarclient`.`aoaacd`
Fonctionne bien aussi
D'avance merci pour tout aiguillage
1 réponse
-
Bonjour ,
Pouvez vous essayer en mettant ceci:
SELECT TOP * FROM `Tarclient` INNER JOIN (SELECT `CodArt` FROM `StockMag` IN 'C:\\Mpb\\Bdd\\StockMag.mdb' ) `JOIN_StockMag` ON `JOIN_StockMag`.`CodArt` = `Tarclient`.`aoaacd` INNER JOIN (SELECT `aaaacd` FROM `Article` IN 'C:\\Mpb\\Bdd\\Article.mdb' ) `JOIN_Article` ON `JOIN_Article`.`aaaacd` = `Tarclient`.`aoaacd`
Il faut bien séparer les inner join quand on fait un multiple comme ceci.
-
Merci avec ça j'obtiens : Erreur de syntaxe (opérateur absent) dans l'expression '`JOIN_StockMag`.`CodArt` = `Tarclient`.`aoaacd` INNER JOIN (SELECT `aaaacd` FROM `Article` IN 'C:\Mpb\Bdd\Article.mdb' ) `JOIN_Article` ON `JOIN_Article`.`aaaacd` = `Tarclient`.`aoaacd`'.
requête :SELECT * FROM `Tarclient` INNER JOIN (SELECT `CodArt` FROM `StockMag` IN 'C:\\Mpb\\Bdd\\StockMag.mdb' ) `JOIN_StockMag` ON `JOIN_StockMag`.`CodArt` = `Tarclient`.`aoaacd` INNER JOIN (SELECT `aaaacd` FROM `Article` IN 'C:\\Mpb\\Bdd\\Article.mdb' ) `JOIN_Article` ON `JOIN_Article`.`aaaacd` = `Tarclient`.`aoaacd`
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI
Merci d'y penser dans tes prochains messages.
Le C# c'est le code csharp -
Bon maintenant je vais essayer de comprendre ce que vous voulez faire
Essayer de rajouter les alias, ca peut peut-être aider.
SELECT * FROM `Tarclient` INNER JOIN (SELECT `CodArt` FROM `StockMag` IN 'C:\\Mpb\\Bdd\\StockMag.mdb' ) AS `JOIN_StockMag` ON `JOIN_StockMag`.`CodArt` = `Tarclient`.`aoaacd` INNER JOIN (SELECT `aaaacd` FROM `Article` IN 'C:\\Mpb\\Bdd\\Article.mdb' ) AS `JOIN_Article` ON `JOIN_Article`.`aaaacd` = `Tarclient`.`aoaacd`
-
-
On va essayer Une autre manière qui pourrait fonctionner:
SELECT * FROM `Tarclient` INNER JOIN `StockMag` AS `JOIN_StockMag` IN 'C:\\Mpb\\Bdd\\StockMag.mdb' ON `JOIN_StockMag`.`CodArt` = `Tarclient`.`aoaacd` INNER JOIN `Article` AS `JOIN_Article` IN 'C:\\Mpb\\Bdd\\Article.mdb' ON `JOIN_Article`.`aaaacd` = `Tarclient`.`aoaacd`
Je suis pas sûr du positionnement de l'aliasing, a essayer le AS après le IN
Dites moi si ca fonctionne,
Si ca ne fonctionne pas essayer que celle-ci :
SELECT * FROM `Tarclient` INNER JOIN `StockMag` AS `JOIN_StockMag` IN 'C:\\Mpb\\Bdd\\StockMag.mdb' ON `JOIN_StockMag`.`CodArt` = `Tarclient`.`aoaacd`
-
Merci :) de ta patience mais en faite :
https://msdn.microsoft.com/en-us/library/bb177907(v=office.12).aspx
You can use IN to connect to only one external database at a time.
Vous pouvez utiliser IN pour vous connecter à une seule base de données externe à la fois.
du coup ce que je tente de faire ne fonctionnera jamais
:'(
-