在eloquent中使用同一个表进行多个连接

时间:2018-02-08 11:37:05

标签: sql laravel eloquent

是否有一些优雅的方式在eloquent中编写以下查询?我想避免使用原始查询:

.myHeader, .myCell{
  flex: 0 0 100px;
  white-space: nowrap;
}

2 个答案:

答案 0 :(得分:0)

如果你正在使用laravel雄辩 你的模型关系可能就像

模型结果:

public function resultFilters()
    {
        return $this->hasMany('App\ResultFilter');
    }

模型ResultFilter:

public function result()
    {
        return $this->belongsTo('App\Result','result_id');
    }

尝试以下代码:

$result = Result::find(1);
$data = $result->resultFilter()
            ->whereIn('filter_id',[2,6])
            ->whereBetween('value',[90,10000])
            ->get();

答案 1 :(得分:0)

你怎么看?它使用DB :: raw但它可以工作

$data = DB::table(DB::raw("results, result_filters as age, result_filters as followers "))
->select(DB::raw("* "))
->where('age.result_id', 'results.id')
->where('followers.result_id', 'results.id')
->where('age.filter_id', 2)
->where('age.value', '<', 90)
->where('followers.filter_id',6)
->where('followers.value','<',10000)
->get();