Запрос MySQL - как подсчитать записи по условию для родительской сущности

Все вопросы/проблемы по установке и использовании.
Ответить
Аватара пользователя
alcompstudio
Спонсор
Спонсор
Сообщения: 1519
Зарегистрирован: 03 янв 2016, 20:42
Имя: Александр
Откуда: Мир

Запрос MySQL - как подсчитать записи по условию для родительской сущности

Сообщение alcompstudio »

Добрый день!

Может кто подскажет, как составить правильно запрос в поле Запрос MySQL, по следующим параметрам.

Дано: сущности

Локации (ID 22)
- Работа (вложенная, ID 27)
Сотрудники (отдельная, ID 31)

В сущн. Локации есть поле Сотрудник (ID 371) с типом Сущность, выводится из сущн. Сотрудники.
В сущности Работа есть поле Статус (ID 295). "выборочное" значение у него "выполнено" с ID 20.

Нужно:

Вывести в записи Сотрудника (в поле сущности Сотрудники) подсчитанное количество записей по сущности Работа (ID 27) со "статусом - Выполнено" (ID 20), при этом учитывая "подключенного" сотрудника в сущности Локации.

Т.е. если бы Сотрудники напрямую подключались в сущность Работа, то было бы проще. Но тут подключение идет в "родительскую" сущность. Т.е. сначала нужно "отобрать" нужные "Локации" по текущему сотруднику, а потом посчитать все записи подсущности Работа (со статусом Выполнено) в этих отобранных локациях и вывести в поле сущности Сотрудники.

В опцию Выбрать из сущности я ставлю сущность Работа (т.к. ее записи будем подсчитывать)

В опцию Выбрать поле я ставлю функцию COUNT(*)

А в условие - затрудняюсь... как правильно составить, чтобы учитывалось поле с типом сущность в родительской сущности??

http://prntscr.com/qyh7l0

Подскажет кто-то решение?
Аватара пользователя
support
Техническая поддержка
Сообщения: 7661
Зарегистрирован: 19 окт 2014, 18:22
Имя: Харчишин Сергей
Откуда: Крым, Евпатория

Re: Запрос MySQL - как подсчитать записи по условию для родительской сущности

Сообщение support »

Нужно делать под-запрос, который будет обращаться к родительской сщуность, примерно так:

Код: Выделить всё

[295]=20 and parent_item_id in (select l.id from app_entity_22 l where l.field_371=e.id)
Аватара пользователя
alcompstudio
Спонсор
Спонсор
Сообщения: 1519
Зарегистрирован: 03 янв 2016, 20:42
Имя: Александр
Откуда: Мир

Re: Запрос MySQL - как подсчитать записи по условию для родительской сущности

Сообщение alcompstudio »

Сергей, спасибо за подсказку, а что обозначает "l.id", в частности символ "l" ?
Аватара пользователя
support
Техническая поддержка
Сообщения: 7661
Зарегистрирован: 19 окт 2014, 18:22
Имя: Харчишин Сергей
Откуда: Крым, Евпатория

Re: Запрос MySQL - как подсчитать записи по условию для родительской сущности

Сообщение support »

В запросе мы пишем "app_entity_22 l" и "l.id" означает что мы берем id из таблицы app_entity_22
l можно заменить на любой другой символ или название.
Аватара пользователя
alcompstudio
Спонсор
Спонсор
Сообщения: 1519
Зарегистрирован: 03 янв 2016, 20:42
Имя: Александр
Откуда: Мир

Re: Запрос MySQL - как подсчитать записи по условию для родительской сущности

Сообщение alcompstudio »

понял, спасибо за разъяснение, попробую реализовать.
Ответить