首页 > 解决方案 > Mysql 查询到正确的 Laravel $query

问题描述

我有这个不起作用的逻辑查询,因为我需要像 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 中使用多重连接给我上述查询!我将永远感激你。

标签: mysqllaraveljoin

解决方案


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加入


推荐阅读