@esvlad
Веб-разработчик

Как сформировать порядок запросов, чтобы получить пользователей?

Как формировать запросы на получение пользователей с фильтрацией.
Таблицы: users, education_session, test_history
структура:
users
624fe0ab8ea10397594627.jpeg
education_session
624fe0f5c1a83709752605.jpeg
test_history
624fe14b8e859869971627.jpeg

окно с фильтрами:
624fe209d2fc6788519159.jpeg

вывод пользователей (примерный):
624fe2bf963e8312506053.jpeg

Простая выборка пользователей, без фильтров:
select distinct `users`.*, `subdivisions`.`title` as `subdivision_title`, `positions`.`title` as `position_title` 
from `users` 
left join `subdivisions` on `users`.`subdivision` = `subdivisions`.`id` 
left join `positions` on `users`.`position` = `positions`.`id` 
where `users`.`role_id` = 0 
order by `users`.`full_name` asc limit 25 offset 0

И начинаются сложности с фильтрацией, так как у каждого пользователя может быть несколько сессий к основным программам общая сессия, к дополнительным, к каждой теме своя сессия, в истории тестирования данные хранятся включая истории с прошлых сессий, при выполнении теста сохраняются данные с ID пользователя, сессии, темы и самого теста. При выборке достаются данные с последних сессий.
Как сформировать порядок запросов для вывода пользователей? Смотреть сначала данные по сессиям к выбранным темам, с учетом что к разным программам могут быть разные сессии. Потом смотреть в истории тестировании, есть ли к выбранным темам по последним сессиям данные, а потом делать запрос к пользователям, по данным из истории тестирования.
  • Вопрос задан
  • 61 просмотр
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы