Я пытаюсь сделать SQL-запрос с помощью OleDbCommand в базу данных Access (.accdb).
Пока эта команда работает нормально (в OleDbCommand.ExecuteReader()
):
string command =
"SELECT cred.* " +
"FROM TB_CREDENTIALS cred " +
"INNER JOIN TB_REL_USERS_CREDENTIALS rel ON cred.CRED_ID = rel.REL_USR_CRED_CRED_ID ";
Это другое не работает, и я не могу понять, почему (все примеры, которые я вижу, используют один и тот же синтаксис):
string command =
"SELECT cred.* " +
"FROM TB_CREDENTIALS cred " +
"INNER JOIN TB_REL_USERS_CREDENTIALS rel ON cred.CRED_ID = rel.REL_USR_CRED_CRED_ID " +
"INNER JOIN TB_USERS usr ON usr.USR_ID = rel.REL_USR_CRED_USER_ID ";
Данным исключением является следующее System.Data.OleDb.OleDbException
:
Синтаксическая ошибка (отсутствует оператор) в выражении запроса 'cred.CRED_ID = rel.REL_USR_CRED_CRED_ID INNER JOIN TB_USERS usr ON usr.USR_ID = rel.REL_USR_CRED_USER_I'
(message is cut here)
Версия и подробности:
- База данных представляет собой файл
.accdb
, созданный в Access 2010. - Соединение создается на C# с помощью
System.Data.OleDb.OleDbConnection
- Поставщик подключения:
"Microsoft.ACE.OLEDB.12.0"
(Это кажется бесполезным запросом, но я, конечно, добавлю WHERE usr.SOME_FIELD = some_condition
)