Menu

Double innner

-
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

1 réponse

Messages postés
1505
Date d'inscription
jeudi 2 juillet 2015
Dernière intervention
16 janvier 2019
451
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
Messages postés
1505
Date d'inscription
jeudi 2 juillet 2015
Dernière intervention
16 janvier 2019
451 -
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
Messages postés
1505
Date d'inscription
jeudi 2 juillet 2015
Dernière intervention
16 janvier 2019
451 -
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