| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > MS Access > Расшифровка полей одной таблицы через поле другой |
| Автор: Sand_Girl 2.4.2007, 10:34 |
| Здравствуйте. Проблема в следующем. Есть 2 таблицы: menu и auto. В menu содержится расшифровка полей таблицы auto. Задание состоит в том, чтобы вывести таблицу auto в расшифрованном виде. Структура таблицы menu следующая: C_MENU | C_REC| NAME_REC С | ) | легковой авто B | * | Россия ... Структура таблицы auto: Number | С_TYPE | С_PLANT| ... 1 | С) | B* ... Таким образом, расшифровка для каждого из полей находится в поле NAME_REC таблицы menu. И чтобы расшифровать тип (С_TYPE) автомобиля с Number 1 необходимо найти такое поле NAME_REC, для которого выполняется условие: (C_MENU + C_REC) = NAME_REC. Таким же образом для C_PLANT и т.д. Запрос пишу следующим образом (пытаюсь расшифровать 2 поля: C_TYPE и C_PLANT): SELECT auto.Number, type.NAME_REC as Тип, factory.NAME_REC as Завод FROM auto INNER JOIN menu type ON auto.C_TYPE = (type.C_MENU + type.C_REC) INNER JOIN menu factory ON auto.C_PLANT = (factory.C_MENU + factory.C_REC) ORDER BY Number Если убрать второй inner, всё отлично срабатывает. А так выдаёт ошибку: "Ошибка синтаксиса (пропущен оператор) в выражении запроса ' auto.C_TYPE = (type.C_MENU + type.C_REC) INNER JOIN menu factory ON auto.C_TYPE = (factory.C_MENU + factory.C_REC) ' " Работаю с БД через ADO, в C++ Builder. Если возможно, подскажите, пожалуйста, в чём дело. Просто это задание на лабораторную, в лекциях подобного не было, в инете тоже не удалось найти. |
| Автор: Akina 2.4.2007, 11:39 | ||
Скобки надо не забывать расставлять.
А то получалось что второй inner join становился частью условия связывания первого. |
| Автор: Sand_Girl 2.4.2007, 12:29 |
| Спасибо |