Новости
Документация
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



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 раздела) из первой строки. И во всех последующих строках используют его.
Т.е первая строка ответа верная а все остальные естественно нет. Как с этим бороться?


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

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

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



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