Menu

Double innner

sqlDebutant - 14 mai 2018 à 14:11 - Dernière réponse :  sqlDebutant
- 15 mai 2018 à 16:50
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


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
Afficher la suite 

Votre réponse

10 réponses

diablo13800 1312 Messages postés jeudi 2 juillet 2015Date d'inscription 10 août 2018 Dernière intervention - Modifié par diablo13800 le 14/05/2018 à 15:05
0
Merci
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.
A Vaincre sans péril, on triomphe sans gloire.
Pierre Corneille, Le Cid 
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
:'(
diablo13800 1312 Messages postés jeudi 2 juillet 2015Date d'inscription 10 août 2018 Dernière intervention - 15 mai 2018 à 14:05
Je pense qu'en effet ca peut compliqué la chose, mais comment cela ce fait que vous avez 2 Bdd externe ?
en fait la personne a créer un ficher base de donnée par table sql
diablo13800 1312 Messages postés jeudi 2 juillet 2015Date d'inscription 10 août 2018 Dernière intervention - 15 mai 2018 à 14:56
Et vous n'avez pas moyen de placer chaque table dans une seul bdd ( surtout qu’apparemment vous avez des clef étrangère pour vos jointure etc...
c'est une vielle base de donnée utilisé par l'entreprise par plusieurs logiciel (et j'en développe un perso pour me simplifier la vie ^^)
Commenter la réponse de diablo13800