2010-12-09 6 views
2

J'ai cette requêteAide sur plusieurs jointure requête

SELECT t1.Trans_ID 
FROM (SELECT * FROM Prune WHERE [Name]="I1") AS t1 
INNER JOIN (SELECT * FROM Prune WHERE [Name]="I2") AS t2 ON (t1.Trans_ID = t2.Trans_ID) 
INNER JOIN (SELECT * FROM Prune WHERE [Name]="I3") AS t3 ON (t1.Trans_ID = t3.Trans_ID) 

et je me suis msg d'erreur: "Erreur de syntaxe (opérateur manquant) dans l'expression de requête

'(t1.Trans_ID = t2.Trans_ID) 
INNER JOIN (SELECT * FROM Prune WHERE [Name]="I3") AS t3 ON (t1.Trans_ID = t3.Trans_ID)' 

Mais ce travail de recherche parfaitement quand je « utilise seulement 1 jointure

SELECT t1.Trans_ID 
FROM (SELECT * FROM Prune WHERE [Name]="I1") AS t1 
INNER JOIN (SELECT * FROM Prune WHERE [Name]="I2") AS t2 ON (t1.Trans_ID = t2.Trans_ID) 

quelqu'un peut dire ce qui se passe? et comment le résoudre?
Je travaille avec ms accès

Répondre

3

MsAccess est parfois pleine de merde ...

Essayez cette

SELECT t1.Trans_ID 
FROM ((SELECT * FROM Prune WHERE [Name]="I1") AS t1 
INNER JOIN (SELECT * FROM Prune WHERE [Name]="I2") AS t2 ON (t1.Trans_ID = t2.Trans_ID)) 
INNER JOIN (SELECT * FROM Prune WHERE [Name]="I3") AS t3 ON (t1.Trans_ID = t3.Trans_ID) 

S'il vous plaît noter que le support supplementare juste après FROM et FERMETURES support seulement après t2.Trans_ID)

+1

ne peut en dire plus: D msaccess est en effet plein de #####, Merci. – Rico

+0

Cela m'a pris un peu de temps pour comprendre, car je suis plus d'un gars Sql Server X-) –

+0

Je vous les gens vous habituer à utiliser le QBE pour écrire vos jointures pour vous, vous auriez beaucoup moins de problèmes avec ce genre de chose. –

2

Essayez ceci:

SELECT t1.Trans_ID 
FROM Prune AS t1 
INNER JOIN Prune AS t2 ON t1.Trans_ID = t2.Trans_ID 
INNER JOIN Prune AS t3 ON t1.Trans_ID = t3.Trans_ID 
WHERE t1.Name = "I1" AND t2.Name = "I2" AND t3.Name = "I3"