Laravel:如何加入相关表以正确使用orderBy?

时间:2017-04-30 16:29:49

标签: eloquent laravel-5.4

以下是我用于获取营地结果的查询:

DELIMITER

但结果没有正确排序。我已经了解到我必须join the tables所以现在我的查询看起来像这样:

$camp = Camp::where('camps.id', $camp_id)
    ->with(['athletes' => function ($q) use ($camp_id) {
    $q->with(['kickoffs' => function ($q) use ($camp_id) {
        $q->where('camp_id', $camp_id);
        $q->orderBy('id', 'desc');
    }]);
  $q->with(['kickoff_results' => function ($q) use ($camp_id) {
       $q->where('camp_id', $camp_id);
       $q->orderBy('score', 'desc');
   }]);

但这似乎让我回到了同样的事情。我觉得我的第一次查询结果更准确,但排序不正确。

非常感谢任何建议!

1 个答案:

答案 0 :(得分:0)

在辅助表中创建外键 并按如下方式加入表格:

DB::table('leads')->select('sec_tbname.sec_tbfk','sec_tbname.join_pm','prm_tbname.prm_tbpm')
            ->join('pm_tbname','sec_tbname.sec_tbfk','=','pm_tbname.id')
            ->get();