|
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,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
40747
|
|