Как учитывать параметры дочернего компонента при сортировке данных?
Добрый вечер. Задача заключается в следующем. Есть список работников. У некоторых работников есть помощник. Помощника отличает наличие параметра trainer_id - ID работника, чьим помощником является данный работник.
У работников есть столбец, который отвечает за то, есть ли сотрудник на работе сегодня "is_work".
Нужно отобразить список работников, исключив из него список помощников (trainer_id = null). При этом, отсортировать их по признаку, есть ли они на работе. Учитывая то, что на работе может быть его помощник.
То-есть если сотрудника нет, но есть его помощник - считается, что сотрудник на работе.
Можно ответ как yf Mysql, так и yf RubyOnRails. Спасибо.
Я правильно понимаю, и работников и помощников вы моделируете как работников (Worker) и храните в одной и той же таблице? Как у вас модель данных организована?
Делай LEFT JOIN таблицы на саму себя и выбирай/сортируй как тебе надо.
Примерно так
SELECT w.* , IF(IFNULL(h.is_work, 0) = 0, w.is_work, h.is_work) as any_is_work
FROM table as w
LEFT JOIN table as h
ON w.id = h.trainer_id
where w.trainer_id is not null
ORDER BY any_is_work