Mysql-запрос на правильный запрос Laravel $ - PullRequest
0 голосов
/ 05 октября 2019

У меня есть этот логический запрос, который не работает, потому что мне нужно объединиться, как 4 разных таблицы, что безумие, но, пожалуйста, помогите мне, я найду лучший путь в будущем.

select * from approvals
    where approvable_type = 
        (select model from permission_configs
            where variable = (
                select permission_slug from role_permission
                    where role_id = (
                        select role_id from role_user 
                            where user_id = approvals.user_id) ) )

Пожалуйста, дайте мне вышеуказанный запрос в Eloquent с несколькими соединениями! Я всегда буду вам благодарен.

1 Ответ

1 голос
/ 05 октября 2019

Вы можете изменить свой запрос, используя inner join вместо where и подзапрос

  select * 
  from approvals a 
  INNER JOIN permission_configs p  ON a.approvable_type  = p.model
  INNER JOIN role_permission r ON p.variable = r.permission_slug 
  INNER JOIN role_user u ON r.role_id = u.role_id 
  WHERE u.user_id = a.user_id 

, когда закончите, вы можете взглянуть на Eloquent для объединения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...