Ошибка внутреннего объединения SQL - PullRequest
0 голосов
/ 18 января 2011
SELECT CommitTime 
FROM Logs 
(INNER JOIN SecurityOptions 
    ON SecurityOptions.Name=Logs.SecurityOption) 
WHERE SecurityOption.ID=22

Это строка sql, которую я использую для получения данных из БД, а мост ODBC выдает следующую ошибку [Microsoft][ODBC Microsoft Access Driver] Syntax error in FROM clause.

И если он не выдаст мне эту ошибку, он выдаст мне INNER JOIN isn't supported, а иногда Syntax Error

Я что-то не так делаю?

Ответы [ 2 ]

3 голосов
/ 18 января 2011

Я думаю, это из-за скобок.Эта часть (INNER JOIN SecurityOptions ON SecurityOptions.Name=Logs.SecurityOption) оценивается в неоткрытой таблице, которая вызывает вашу проблему.

Удаление скобок должно исправить это:

SELECT CommitTime 
FROM Logs L
INNER JOIN SecurityOptions SO
    ON SO.Name = L.SecurityOption
WHERE SO.ID=22

Редактировать:

Однако из названий столбцов мне не кажется, что JOIN является допустимым.Обычно объединение основано на идентификаторах - следовательно, это может быть что-то вроде SO.Id = Logs.SecurityOptionId.

Я думаю, вам следует использовать конструктор запросов в MS Access - просто извлеките таблицы и, если есть определенные отношения, онипоявится сразуЕсли они не отображаются, то вам придется взглянуть на INSERTs, чтобы выяснить, как эти две таблицы связаны друг с другом.

0 голосов
/ 18 января 2011

INNER JOIN равно НЕ так же, как FULL JOIN. НЕ Попробуйте FULL JOIN>

...