Помощь по нескольким запросам внутреннего соединения - PullRequest
2 голосов
/ 09 декабря 2010

У меня есть этот запрос

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)

, и я получил сообщение об ошибке: "Синтаксическая ошибка (отсутствует оператор) в выражении запроса

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

Но этот запрос отлично работает, когда яиспользуя только 1 внутреннее объединение

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)

кто-нибудь может сказать, что случилось? и как ее решить?
Я работаю с ms access

Ответы [ 2 ]

3 голосов
/ 09 декабря 2010

MsAccess иногда полон дерьма ...

Попробуйте это

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)

Обратите внимание на дополнительную открытую скобку сразу после FROM и дополнительную закрывающую скобку просто после t2.Trans_ID)

2 голосов
/ 09 декабря 2010

Попробуйте это:

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"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...