【问题标题】:Mysql query to proper Laravel $queryMysql 查询到正确的 Laravel $query
【发布时间】:2020-02-03 10:58:45
【问题描述】:

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

【问题讨论】:

    标签: mysql laravel join


    【解决方案1】:

    您可以使用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 加入

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-04-07
      • 2021-03-16
      • 2017-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多