Страница 1 из 1

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

Добавлено: 06 фев 2020, 17:29
alcompstudio
Добрый день!

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

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

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

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

Нужно:

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

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

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

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

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

http://prntscr.com/qyh7l0

Подскажет кто-то решение?

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

Добавлено: 06 фев 2020, 19:00
support
Нужно делать под-запрос, который будет обращаться к родительской сщуность, примерно так:

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

[295]=20 and parent_item_id in (select l.id from app_entity_22 l where l.field_371=e.id)

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

Добавлено: 06 фев 2020, 19:51
alcompstudio
Сергей, спасибо за подсказку, а что обозначает "l.id", в частности символ "l" ?

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

Добавлено: 06 фев 2020, 20:18
support
В запросе мы пишем "app_entity_22 l" и "l.id" означает что мы берем id из таблицы app_entity_22
l можно заменить на любой другой символ или название.

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

Добавлено: 06 фев 2020, 22:29
alcompstudio
понял, спасибо за разъяснение, попробую реализовать.