2013-03-05 5 views
1

Просто пытаюсь заставить мой SQL-запрос работать в MS-Access, но он этого не хочет. Я пытался найти гида или что-то в этом роде, потому что я знаю, что это происходит много времени, и это часто связано с добавлением некоторых скобок, но я не смог заставить этот запрос работать, несмотря на все мои попытки:Преобразование SQL-запроса в MS-Access SQL

SELECT t1.Name AS lev1, t2.Name as lev2, t3.Name as lev3, t4.Name as lev4 
FROM Folder AS t1 
LEFT JOIN Folder AS t2 ON t2.Parent = t1.ObjId 
LEFT JOIN Folder AS t3 ON t3.Parent = t2.ObjId 
LEFT JOIN Folder AS t4 ON t4.Parent = t3.ObjId 
WHERE t1.ObjId = '123456789'; 
+3

Какую ошибку вы получаете? –

+0

Обычная «Синтаксическая ошибка доступа» - нет оператора, а затем указывает на t2.Name в первой строке. Не знаю, почему ты спрашиваешь меня об этом. Как вы, наверное, уже знаете, Access требует много скобок, и поэтому это синтаксическая ошибка, но я не знаю, где поставить скобки. Я никогда точно не понимал разницы, и именно поэтому я прошу какие-то рекомендации или указания на различия. – dnLL

ответ

4

MS Access требует скобок по каждому соединению. Если у вас есть несколько столов соединения, вы будете иметь несколько:

SELECT t1.Name AS lev1, t2.Name as lev2, t3.Name as lev3, t4.Name as lev4 
FROM ((Folder AS t1 
LEFT JOIN Folder AS t2 ON t2.Parent = t1.ObjId) 
LEFT JOIN Folder AS t3 ON t3.Parent = t2.ObjId) 
LEFT JOIN Folder AS t4 ON t4.Parent = t3.ObjId 
WHERE t1.ObjId = '123456789'; 

отформатированный это выглядит следующим образом:

SELECT t1.Name AS lev1, t2.Name as lev2, t3.Name as lev3, t4.Name as lev4 
FROM 
(
    (
     Folder AS t1 
     LEFT JOIN Folder AS t2 ON t2.Parent = t1.ObjId 
    ) 
    LEFT JOIN Folder AS t3 ON t3.Parent = t2.ObjId 
) 
LEFT JOIN Folder AS t4 ON t4.Parent = t3.ObjId 
WHERE t1.ObjId = '123456789'; 
+0

Это действительно работает. Это всегда одно и то же? Все открывающие скобки в начале предложения FROM, а затем закрыть один после каждого оператора JOIN/ON? – dnLL

+1

@ dnLL да, это синтаксис. Поместите открывающие круглые скобки на 'FROM' и закрытие после каждого соединения. – Taryn