Как составить сложный запрос с полиморфным отношением многие ко многим на MySQL (сделано в Laravel)

Есть такие таблицы (упрощенный вид):

Companies
-id
-name

Departments
-id
-name
-company_id

Persons
-id
-name

Pivot
-id
-pivot_id
-pivot_type
-persons_id

Смысл такой - человек может работать в компании в который нет подразделений или в головном руководстве компании (его запись в persons будет связана с companies). Человек может работать в отделе компании (тогда его запись будет связана с таблицей departments). Человек может работать как в руководстве, так и в отделе компании. Или в 2 или нескольких компаниях или отделах. Или человек может быть частым лицом и тогда его запись вообще не связанна ни с одной этой таблицей. На данный момент все работает - при выборе записи компании Eloquent вытаскивает людей работающих в руководстве компании и отделы в компании (если они есть), при выборе отдела компании - людей работающих в отделе этой компании. Помогите написать запрос (в Eloquent или нативно в SQL) чтобы при запросе списка людей можно было добавить дополнительные поля с названием компании или отдела где работает человек. Пока пробую через LEFT JOIN с подзапросом, не получается. Нужно получается узнать сначала тип таблицы, его вставить в переменную и эту переменную подставить в качестве параметра во SELECT name FROM type


Ответы (0 шт):