Учитывая схему, которую вы описываете, я выполняю выборку с предикатом (строка формата), например @"jobDescription LIKE 'chef'"
, а затем использую кодирование значения ключа для получения уникальных значений из полученного массива:
[result valueForKeyPath:@"@distinctUnionOfValues.departmentID"];
или создайте набор:
NSSet *deparmentIDs = [NSSet setWithArray:[result valueForKey:@"departmentID"]];
В зависимости от размера проблемы (сколько сотрудников) выполнение последнего шага в памяти может оказаться непосильным. На этом этапе вам нужно будет создать подразделение отдела и выполнить работу, чтобы убедиться, что вы подключаете соответствующих сотрудников к каждому отделу. Затем вы можете выбрать отделы с помощью предиката (строка формата), например @"ANY employees.jobDescription LIKE 'chef'"
, чтобы получить отделы с сотрудниками шеф-повара.