Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Выборка из нескольких таблиц с FROM и JOIN 
:(
    Опции темы
Elfix
Дата 28.5.2011, 23:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 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 сервере такой запрос выполняется на Ура.
Буду признателен за любой конструктивный комментарий.
PM MAIL   Вверх
Akina
Дата 28.5.2011, 23:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454



Код

FROM regions LEFT JOIN scenarios ON scenarios.id = regions.id, reports_elements

Либо учите особенности синтаксиса Аксесса, либо пользуйтесь построителем запросов.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Elfix
Дата 29.5.2011, 08:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 167
Регистрация: 13.7.2005

Репутация: нет
Всего: нет



Цитата(Akina @  28.5.2011,  23:35 Найти цитируемый пост)
FROM regions LEFT JOIN scenarios ON scenarios.id = regions.id, reports_elements

Пишет: Не поддерживается выражение объединения 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. Но меня это уж очень сильно не устраивает, так как большая часть данных отсекается...

Есть ли способ обойти эту проблему?
PM MAIL   Вверх
Akina
Дата 29.5.2011, 21:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454



Цитата(Elfix @  29.5.2011,  09:57 Найти цитируемый пост)
Выяснилось, что Access "не хочет" присоединять "левым" соединением. Можно использовать только INNER. 

БСК.

То, что читать справку Вам лень, я уже понял. Ну тогда (всё-таки) воспользуйтесь построителем запросов.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Elfix
Дата 30.5.2011, 15:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 167
Регистрация: 13.7.2005

Репутация: нет
Всего: нет



Цитата(Akina @  29.5.2011,  21:05 Найти цитируемый пост)
То, что читать справку Вам лень, я уже понял. Ну тогда (всё-таки) воспользуйтесь построителем запросов. 
А вам, если нечего сказать, прошу не отвечать мне. Ваш код все равно не работает.

Построитель запросов делает INNER. Мне нужен LEFT.
PM MAIL   Вверх
Akina
Дата 30.5.2011, 16:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454



Цитата(Elfix @  30.5.2011,  16:55 Найти цитируемый пост)
Построитель запросов делает INNER. Мне нужен LEFT. 

А свойства связи между таблицами Пушкин будет настраивать, что ли?
В конце концов постройте статический запрос, объединяющий scenarios справа и regions слева (или тоже не получается?), и затем второй на основе этого первого запроса и reports_elements.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Elfix
Дата 30.5.2011, 21:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 167
Регистрация: 13.7.2005

Репутация: нет
Всего: нет



Цитата(Akina @  30.5.2011,  16:12 Найти цитируемый пост)
А свойства связи между таблицами Пушкин будет настраивать, что ли?
В конце концов постройте статический запрос, объединяющий scenarios справа и regions слева (или тоже не получается?), и затем второй на основе этого первого запроса и reports_elements. 

Построителем запроса и делаю, связи не настраиваю. Работает. Редактирую текст запроса: заменяю INNER на LEFT. Выскакивает ошибка при выполнении. Вертаю назад на INNER. Все красиво выполняется. Лезу в построитель запроса и настраиваю связь с правым соединением. Выскакивает ошибка. Делаю вывод, что в случае когда делается выборка из двух таблиц, присоединение может работать только внутреннее.

Вышел из ситуации по-другому: выбрал из двух таблиц, обернул результат еще в один SELECT и уже в новом селекте делаю необходимые джойны... Проблему не решил, только нагородил еще один селект, как следствие усложнил не без того сложный запрос (рабочий запрос значительно сложнее, чем тот что выложен здесь). В условиях, когда нельзя закоментировать участки кода, для меня это критично.

Akina, прежде чем давать дельные советы с последующим оскорблением участников форума, советую вам более вдумчиво и основательно подходить к поднимаемой проблеме, хотя бы тестировать код, который вы предлагаете, перед тем как в очередной раз начнете "умничать".
PM MAIL   Вверх
Akina
Дата 31.5.2011, 00:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454



Цитата(Elfix @  30.5.2011,  22:47 Найти цитируемый пост)
Вышел из ситуации по-другому: выбрал из двух таблиц, обернул результат еще в один SELECT и уже в новом селекте делаю необходимые джойны... Проблему не решил, только нагородил еще один селект, как следствие усложнил не без того сложный запрос (рабочий запрос значительно сложнее, чем тот что выложен здесь). В условиях, когда нельзя закоментировать участки кода, для меня это критично.

Это то же самое, что и 
Цитата(Akina @  30.5.2011,  17:12 Найти цитируемый пост)
постройте статический запрос, объединяющий scenarios справа и regions слева, и затем второй на основе этого первого запроса и reports_elements. 

Или замените from a join b on a.x=b.y на from a,b where a.x=b.y or b.y is null, что ли...



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Akina
Дата 31.5.2011, 07:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454



Ааа! я идиот!

Я понял, откуда проблема... блин, полчаса убил... вчера на работе же, есссно, промоделировал на первых попавшихся под руку таблицах - работало! С утра - дай, думаю, скриншотов наделаю да выложу... бац! не работает! твою ж пожалуйста... в общем, через полчаса копаний понял, что "быстренько промоделировал" ситуацию ни разу ни в базе данных, а в проекте. Ясен пень, MS SQL съел такое объединение и не поморщился...

В общем, был со всех сторон неправ. Безоговорочно признаю и посыпаю. Приношу извинения и прошу простить.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS Access"
Akina
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] и [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS Access | Следующая тема »


 




[ Время генерации скрипта: 0.0901 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.