![]() |
Модераторы: Akina |
![]() ![]() ![]() |
|
Elfix |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 167 Регистрация: 13.7.2005 Репутация: нет Всего: нет |
Доброго времени суток!
Не могу понять почему не работает запрос в Access? SELECT regions.region_name, reports_elements.report_element_name FROM regions, reports_elements LEFT JOIN scenarios ON scenarios.id = regions.id Access пишет ошибку: "Ошибка синтаксиса в операции JOIN". Но ведь в SQL сервере такой запрос выполняется на Ура. Буду признателен за любой конструктивный комментарий. |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 30 Всего: 454 |
Либо учите особенности синтаксиса Аксесса, либо пользуйтесь построителем запросов. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Elfix |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 167 Регистрация: 13.7.2005 Репутация: нет Всего: нет |
Пишет: Не поддерживается выражение объединения JOIN... SELECT regions.region_name, reports_elements.report_element_name FROM regions LEFT JOIN scenarios ON scenarios.id = regions.id, reports_elements Добавлено через 7 минут и 39 секунд Выяснилось, что Access "не хочет" присоединять "левым" соединением. Можно использовать только INNER. Но меня это уж очень сильно не устраивает, так как большая часть данных отсекается... Есть ли способ обойти эту проблему? |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 30 Всего: 454 |
БСК. То, что читать справку Вам лень, я уже понял. Ну тогда (всё-таки) воспользуйтесь построителем запросов. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Elfix |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 167 Регистрация: 13.7.2005 Репутация: нет Всего: нет |
||||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 30 Всего: 454 |
А свойства связи между таблицами Пушкин будет настраивать, что ли? В конце концов постройте статический запрос, объединяющий scenarios справа и regions слева (или тоже не получается?), и затем второй на основе этого первого запроса и reports_elements. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Elfix |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 167 Регистрация: 13.7.2005 Репутация: нет Всего: нет |
Построителем запроса и делаю, связи не настраиваю. Работает. Редактирую текст запроса: заменяю INNER на LEFT. Выскакивает ошибка при выполнении. Вертаю назад на INNER. Все красиво выполняется. Лезу в построитель запроса и настраиваю связь с правым соединением. Выскакивает ошибка. Делаю вывод, что в случае когда делается выборка из двух таблиц, присоединение может работать только внутреннее. Вышел из ситуации по-другому: выбрал из двух таблиц, обернул результат еще в один SELECT и уже в новом селекте делаю необходимые джойны... Проблему не решил, только нагородил еще один селект, как следствие усложнил не без того сложный запрос (рабочий запрос значительно сложнее, чем тот что выложен здесь). В условиях, когда нельзя закоментировать участки кода, для меня это критично. Akina, прежде чем давать дельные советы с последующим оскорблением участников форума, советую вам более вдумчиво и основательно подходить к поднимаемой проблеме, хотя бы тестировать код, который вы предлагаете, перед тем как в очередной раз начнете "умничать". |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 30 Всего: 454 |
Это то же самое, что и
Или замените from a join b on a.x=b.y на from a,b where a.x=b.y or b.y is null, что ли... -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 30 Всего: 454 |
Ааа! я идиот!
Я понял, откуда проблема... блин, полчаса убил... вчера на работе же, есссно, промоделировал на первых попавшихся под руку таблицах - работало! С утра - дай, думаю, скриншотов наделаю да выложу... бац! не работает! твою ж пожалуйста... в общем, через полчаса копаний понял, что "быстренько промоделировал" ситуацию ни разу ни в базе данных, а в проекте. Ясен пень, MS SQL съел такое объединение и не поморщился... В общем, был со всех сторон неправ. Безоговорочно признаю и посыпаю. Приношу извинения и прошу простить. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "MS Access" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | MS Access | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |