foreach([3=>'P2',4=>'P3',5=>'P4',6=>'P5',7=>'P6'] as $lid=>$lname){ echo "===== {$lname} (level_id={$lid}) =====\n"; foreach(DB::table('tracks')->where('level_id',$lid)->orderBy('field_id')->orderBy('id')->get() as $t){ $f = DB::table('fields')->where('id',$t->field_id)->value('field'); echo "TRACK#{$t->id} [{$f}] {$t->track}\n"; foreach(DB::table('skill_track')->join('skills','skills.id','=','skill_track.skill_id')->where('skill_track.track_id',$t->id)->orderBy('skill_track.skill_order')->get(['skill_track.skill_id as sid','skills.skill as sname']) as $s){ echo " {$s->sid} {$s->sname}\n"; } } }