Упражнение 3. Составной запрос

Опубликовано пользователем Бессонов Л.В. 22.11.2010г.

Постановка задачи

Фрагмент базы данных пользователейДан фрагмент базы данных:

Сущность "users" хранит информацию о пользователях системы: уникальный идентификатор, системное имя (логин), хеш пароля, адрес почты и статус (активен или заблокирован).

Сущность "roles" хранит допустимые в системе роли пользователей. Например: администратор, модератор раздела 1, модератор раздела 2, обычный пользователь и т.п. Благодаря связующей сущности "users_roles" один пользователь может иметь несколько ролей.

Сущность "profile_fields" определяет допустимые поля профиля пользователя. Например: Name, Surname, Patronim, Phone, Department, Position. Благодаря связующей сущности "profile_values" каждый пользователь может иметь заполненными одно, несколько или все допустимые поля профиля.

Необходимо построить запрос к указанным таблицам для получения следующих групп сведений:

  1. Данные пользователя: идентификатор, логин, почта, статус
  2. Данные профиля: значение четырёх указанных в описании полей профиля пользователя, если значение не введено, вместо него должно быть NULL-значение
  3. Записанные через запятую в одном поле все роли пользователя

Выборку реализовать одним SQL-запросом, допускается использование вложенных запросов.

Баннер SGU.RU