Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Проблема с вложенным запросом (Антон) 23/11/2011 - 21:02:19
      Re: Проблема с вложенным запросом (Akina) 23/11/2011 - 21:56:04
      Re: Проблема с вложенным запросом (Антон) 23/11/2011 - 23:30:22
      Re: Проблема с вложенным запросом (Akina) 24/11/2011 - 09:13:41
      Re: Проблема с вложенным запросом (Антон) 24/11/2011 - 16:13:30

> Original message text:
> From: Антон - 23/11/2011 - 21:02:19
> Subject:Проблема с вложенным запросом
> -----------------
> есть такой запрос для получения прав на раздел:
>
>
> SELECT
> `name`,
> 1 AS `u`, # юзер который запрашивает разделы
> `folder`.`folder` AS `f`, # раздел
> (
> SELECT
> IFNULL(#Сдесь я получаю права на определённый раздел для определённого юзера
> (
> SELECT max(`fr`.`access`)AS `a`
> FROM `_path` AS `p`
> JOIN `_fr` `fr` ON `p`.`parent` = `fr`.`folder` # Права групп на разделы
> JOIN `_ur` `ur` ON `ur`.`role` = `fr`.`role` # Группы в которых состоит юзер
> WHERE
> `p`.`filial` = `f` AND # `f` - это переменная из самого верхнего запроса,
> `ur`.`user` = `u` # `u` - эта тоже.
> GROUP BY `p`.`parent`
> ORDER BY `p`.`lavle` DESC
> LIMIT 1
> ),
> IF((# если нету записей в таблице с правами то смотрю существует ли данный юзер
> SELECT `_ur`.`user`
> FROM `_ur`
> WHERE `_ur`.`user` = `u` # переменная из самого верхнего запроса
> LIMIT 1
> ),1,0)
> )AS `a`
> )AS `a`
> FROM
> `cont_folder` AS `folder`
>
> Запросы внутри работают правильно, проблема в том что эти самые запросы "запоминают" значение `f`(id раздела) из первой строки. И во всех последующих строках используют его.
> Т.е первая строка ответа верная а все остальные естественно нет. Как с этим бороться?
>


From: Антон - 24/11/2011 - 16:13:30
Subject:Проблема с вложенным запросом
-----------------
)AS `a`)AS `a` ставил что-бы попробовать все варианты. без них или при переименование происходит то-же самое

Спасибо за подсказку с группами. Поставил группировку для верхнего запроса всё стало работать правильно.

Можно ссылку на доку где подробно написано про группы, вложенные запросы и про то как и что влияет на переменные если их использовать в подзапросах, желательно на русском языке. Не совсем понятно почему так происходит ведь если не вкладывать запрос внутрь условий то всё работает, а с IFNULL нет.


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
40747



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |