[英]Laravel Eloquent leftJoin within a whereIn query
如果我有类似以下的内容,如何在“ with(new Model)”部分添加左联接?
Model::whereIn('name', function ($query) use ($link) {
$query->select('name')
->from(with(new Model)->getTable()) // would like to do a leftJoin here
->where('link', $link);
})->get();
我试过了
Model::whereIn('name', function ($query) use ($link) {
$query->select('name')
->from(with(new Model)->leftJoin('tableZ', Model.col1, '=', tableZ.col1)->getTable())
->where('link', $link);
})->get();
我也尝试过:
Model::whereIn('name', function ($query) use ($link) {
$query->select('name')
->from(with(new Model)->getTable())
->leftJoin('tableZ', Model.col1, '=', tableZ.col1)
->where('link', $link);
})->get();
不确定我该怎么做。
在tableZ
link
字段吗? 如果是这样
->where('table.link', $link)
可能就是您想要的。 我将在您的第二个示例中使用它; 我不认为将leftJoin()
直接应用于with
函数是leftJoin()
,因为with()似乎返回模型对象,而不是查询。
也许您应该这样做。
DB::table("table_A")
->leftJoin("table_B","table_A.id,"=","table_B.A_id)
->select(['table_A.name as name','xxxxxx']);
我认为您可以尝试这样做可能会解决您的问题:
Model::whereIn('name', function ($query) use ($link) {
$query->select('name')
->from(with(new Model)->getTable())
->leftJoin('tableZ', Model.col1, '=', tableZ.col1)
->where('tableZ.link', $link);
})->get();
希望这项工作为您服务!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.