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




MySQL.RU - Webboard



Вернуться
Немогу сделать корректную выборку из 4х табли (Kein) 03/03/2010 - 11:57:44



From: Kein - 03/03/2010 - 11:57:44
Subject:Немогу сделать корректную выборку из 4х табли
-----------------
Описание таблиц
applications { Список приложений
id, INT Идентификатор
name Имя
}

groups_in_app{ # Список приложений разрешенных группам
app, INT ИД приложения(applicaions.id)
gid, INT ИД группы
access INT - уровень доступа - определяет уровень доступа к приложению groups_in_app.app для группы groups_in_app.gid
}
users_in_app{ # Список приложенний разрешенных для пользователей, то же что и предыдущая, только права перезаписываются из этой таблицы, то есть если в этой таблице есть правило для пользователя, оно перезапишет права полученные из группы
app, INT ИД приложения
uid, INT ИД пользователя
access INT Уовень доступа
}
users_in_groups{ # Список пользователей в группах, пользователь может быть в разных группах
uid,INT ИД пользователя
gid INT ИД группы
}

Кроме того в таблице groups_in_app есть приложения с ИД группы 0, это для гостей.

Мне нужны выбрать поля "Название приложения", "Уровень доступа".

Вот что получилось
"SELECT applications.name,
IFNULL(users_in_app.access,
MAX(groups_in_app.access)) AS access
FROM users_in_groups,applications, groups_in_app
LEFT JOIN users_in_app ON (users_in_app.app = groups_in_app.app)
WHERE users_in_groups.gid = groups_in_app.gid AND
groups_in_app.app = applications.id AND
groups_in_app.gid = 0 OR
users_in_groups.uid = 1
GROUP BY applications.name"

Но что-то не то совсем

Вот тестовый дамп http://pastebin.com/FCqt5ugx


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

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

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



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