mysql - 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 中使用多重连接给我上述查询!我将永远感激你。
解决方案
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
加入
推荐阅读
- url - 这是一个单页网站还是单独的网页?
- mysql - SQL - 一列中有多个位置
- cuda - RTX 2080 Ti cuda-memcheck 在创建 Cublas 上下文时遇到错误
- python - 计数字符串函数的时间和空间复杂度是多少
- jquery - 如何检测变量是否在一段时间内没有变化?
- sql-server - Select 语句中的 LINQ 附加过滤器
- ios - 如何在 iOS 上使用 kCIInputTransformKey
- c - 在 C 的编译时检查类型是结构还是指针?
- python - urls.E004 路径在 Python Django 中不起作用
- java - 我们可以配置 Spring Boot Executable Jar 吗?