laravel - Laravel 雄辩或 leftjoin 失败
问题描述
我雄辩的询问并没有给我我的期望。当我使用 orWhere 时,它放在查询的末尾而不是在 leftjoin 之后。
$r = groupofpupil::where('group_id' , '=', '13')
->leftjoin('pupils' ,'pupil1_id' , '=', 'pu_id' )
->orWhere('pupil0_id', '=', 'pu_id')
->leftjoin('users', 'pupils.id', '=', 'users.id')
->select('*')
->get();
sql查询是:
SELECT * from groupofpupils
LEFT JOIN pupils on pupil1_id = pu_id
LEFT JOIN users on pupils.id = users.id
WHERE group_id = 13
OR pupil0_id = pu_id
但我期待这个
SELECT * from groupofpupils
LEFT JOIN pupils on pu_id = pupil1_id OR pu_id = pupil0_id
LEFT JOIN users on pupils.id = users.id
WHERE group_id = 13
请问,我做错了什么?
解决方案
尝试这样的事情:
$r = groupofpupil::leftjoin('pupils', 'pupils.pupil1_id', '=', 'groupofpupils.pu_id')
->leftjoin('users', 'users.id', '=', 'pupils.id')
->where('groupofpupils.group_id', 13)
->orWhere('pupils.pupil0_id', '=', 'groupofpupils.pu_id')
->get();
推荐阅读
- php - 在客户端上Stripe付款成功后将数据从表单发布到php
- google-analytics - 谷歌分析探索日期范围
- jenkins - 在不稳定的构建后阻止 Jenkins 运行
- ssh - 带有 SSH ProxyJump 的 GitLab CI 运行器
- sparql - 这是选择所有使用的类的正确 SPARQL 查询吗?
- scala - 通过 jenkins 运行 SonarQube 分析,为 Spark Scala 代码抛出 StackOverFlow 错误
- azure - 用于清除数据以获取应用程序洞察力的 Powershell 脚本,可用于日志分析
- go - Golang 读者:为什么使用按位运算符 << 编写 int64 数字
- go - 为什么简单的 XML 解析器不填充结构
- c# - 如何使用递归输出这个数字