![]() |
|
#1
|
|||
|
|||
![]() Ребят, подскажите как создать запрос, чтобы SELECT FROM выбирал не из таблицы, а из UNION трёх запросов.. Поясню:
есть таблица прав доступа к модулю, в ней указаны: пользователь, группа пользователей, роль есть таблицы: права пользователей, роли.. делаю три запроса для выборки идентификаторов попользователей, соединяю их в единый запрос, в котором содержатся все пользователи, входящие как в группы пользователей, разрешённых для работы с модулем, как в роли, так и сами пользователи, разрешённые для работы с модулем... данные в этом запросе повторяются, так как один и тот же пользователь может быть и в группе и состоять в какой-нибудь роли, или просто иметь личные права доступа к модулю... теперь нужно сделать DISTINCT всего запроса, состоящего из этих трёх и отсеять пользователя по его идентификатору и названию модуля, чтобы узнать имеет ли он на этот модуль права и какие... как получившийся вопрос, состоящий из трёх вложить в FROM основного запроса??? Код:
Последний раз редактировалось lmikle, 01.11.2012 в 21:31. |
#2
|
||||
|
||||
![]() Я бы, из того что у тебя в скобках сделал вьюху. Ну, а дальше все понятно
![]() Некоторые программисты настолько ленивы, что сразу пишут рабочий код. Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты. |
#3
|
|||
|
|||
![]() извини, я недавно плотно начал программировать и работать с базами, поэтому не понимаю пока жаргона, подробнее можно?, спасибо!
|
#4
|
|||
|
|||
![]() нанёшл кое-что в яндексе, попробовал в акцессе такой запрос:
Код:
отказался работать, не узнаёт служебного слова View |
#5
|
||||
|
||||
![]() А в акцессе наверное нету вьюх... Я, грешным делом, подумал что это для сервера запрос.
Некоторые программисты настолько ленивы, что сразу пишут рабочий код. Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты. |
#6
|
|||
|
|||
![]() да я на акцессе только отлаживаю программу, потом буду переводить на фаербёрд, но нужно двухсторонняя поддержка, чтобы пока первое время работать на локальной базе, а потом просто скопировать таблицы и изменить строку подключения... возможно как-то обойтись без создания временной таблицы? чтобы создавался запрос в памяти, а не на таблица на винчестере, так как пользователей возможно будет много
|
#7
|
||||
|
||||
![]() Цитата:
Цитата:
|
#8
|
|||
|
|||
![]() видимо, где-то ошибка была, сейчас всё работает...
Код:
|
#9
|
|||
|
|||
![]() только почему-то странно выдаёт результат - остальные поля кроме allowload представлены не флвжками, хотя в изначальной таблице они имеют одинаковое свойство - Логический...
![]() |
#10
|
|||
|
|||
![]() блин, в акцессе работает, делаю запросом делфи - не работает, пишет "Неопознанная ошибка"... в чём может быть дело???
Код:
|
#11
|
||||
|
||||
![]() Цитата:
|
#12
|
|||
|
|||
![]() да, если один вложенный запрос, и запрос простой из одной таблицы без джойнов, то работает
|
#13
|
|||
|
|||
![]() ребят, никаких идей?
|
#14
|
|||
|
|||
![]() написал в теме, на сайте, посвященному чисто SQL:
Неопознанная ошибка при попытке order by |
#15
|
|||
|
|||
![]() Цитата:
А чем тебя в этом случае Embedded FB не устраивает. Да и FB сервер ставится легко. А то потом замучаешься менять запросы, подгоняя под синтаксис. Т.е. если все-равно планируется переход на другой сервер, то лучше сразу на этом сервере и делать (сервер имеется в виду СУБД). |