0
這裏是我用得到一個陣營結果查詢:Laravel:如何加入相關表以正確使用orderBy?
$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');
}]);
但結果都沒有得到正確排序。我瞭解到,我必須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');
}])->join('kickoff_results', 'athletes.id', '=', 'kickoff_results.athlete_id')
->orderBy('kickoff_results.score', 'desc');
但是,這似乎是回到我同樣的事情。我覺得我的結果在我的第一個查詢中更準確,但排序不正確。
任何建議,非常感謝!