Два внутренних соединения в SQL-запросе OleDb

Я пытаюсь сделать 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)


person Daniel Möller    schedule 26.02.2018    source источник
comment
Пожалуйста, подтвердите мой ответ, если он вам помог.   -  person GeorgiG    schedule 26.02.2018
comment
Конечно :) -- Ждём истечения срока.   -  person Daniel Möller    schedule 26.02.2018
comment
Извините, вы правы! И спасибо. Я новичок в ответах на вопросы.   -  person GeorgiG    schedule 26.02.2018


Ответы (1)


«Для соединений с несколькими таблицами вы должны вложить дополнительные соединения в скобки:»

оператор множественного соединения SQL

person GeorgiG    schedule 26.02.2018