sql - Laravel 查询构建器从子查询左连接
问题描述
我正在使用 Laravel 查询生成器并尝试执行以下操作:
$builder = DB::table('mainTable')->where("mainTable.id", "=", 111);
$builder->leftJoinSub(
DB::table('table2')
->where('table2.id', '=', DB::raw("mainTable.subtableId"))
->where('table2.region', '=', DB::raw("mainTable.region"))
->orderBy('table2.someOrder', 'DESC')
->select('kamery2.id')
->first(),
'myId',
'table2.id',
'=',
'myId'
);
我得到
无法绑定多部分标识符“mainTable.subtableId”。
但是,当我用它编写它时DB::raw('...')
。
$builder->leftJoin(
'table2',
'table2.id',
'=',
DB::Raw("...")
);
所以我试图找出我做错了什么。我只犯了句法错误吗?或者 Laravel 查询的构建器不允许我想要实现并且我必须使用->leftJoin(.... DB::raw() )
?
解决方案
推荐阅读
- javascript - 添加活动类的滑块
- .net-core - 无法在 Ubuntu 上运行的 Rider 2019.3 中从私有源恢复 nuget 包
- kubernetes - traefik kubernetes crd 健康检查
- java - Android 服务在启动/恢复时短暂为空
- java - 用于命令行代码覆盖率计算的 Java 库?
- reactjs - .map 函数内的子组件显示所有子实例
- dockerfile - 为什么docker容器会自行退出
- php - 从 PHP 中的格式化纯文本中提取数据
- ios - 处理具有相同签名但不同参数的多个函数的最有效方法
- python - PyCharm 无法从 Docker 容器打开文件:没有这样的文件或目录