Laravel Запрос. Левое объединение не возвращает несвязанные строки из левой таблицы - PullRequest
0 голосов
/ 01 апреля 2020

У меня есть база данных с таблицей расшифровки , в которой есть оценки учеников для каждого класса, который у них есть, и у меня также есть таблица учебных планов , в которой есть список всех классы, которые студент должен завершить, чтобы получить степень.

Мне нужно отобразить все курсы_кодов из таблицы учебная программа и показать оценки, которые получил студент если они закончили этот курс в учебной программе. Я пытаюсь использовать левое объединение, чтобы получить все коды Course_Code, но не повезло ни с чем, что я пробовал.

Вот модели для учебной программы и таблицы расшифровки:

protected $table ="curriculum";
protected $fillable = [
  'Program_ID',
  'Curriculum_ID',
  'Maj_Code',
  'Course_Code',
  'Course_Seq',
  'Prereq_ID',
  'Course_Desc',
];
protected $table ="transcript";
protected $fillable = [
  'Transcript_ID',
  'CWID',
  'Maj_Code',
  'Curriculum_ID',
  'Course_Comp',
  'Term_Completed',
  'Course_Grade',
  'Course_Code',
];

Вот запрос в curriculumController:

public function getProgress($id){
return DB::table('curriculum')
->select('curriculum.Course_Code','transcript.Course_Comp', 'transcript.Term_Completed', 'transcript.Course_Grade')
->leftJoin('transcript', 'curriculum.Course_Code', '=','transcript.Course_Code')
->where('CWID', $id)
->get();

Вот вывод:

[
{
    "Course_Code": "CIS299",
    "Course_Comp": "A",
    "Term_Completed": null,
    "Course_Grade": null
},
{
    "Course_Code": "CIS352",
    "Course_Comp": "A",
    "Term_Completed": null,
    "Course_Grade": null
},
{
    "Course_Code": "CIS110",
    "Course_Comp": "Y",
    "Term_Completed": "Fall18",
    "Course_Grade": "A"
},
{
    "Course_Code": "CIS120",
    "Course_Comp": "Y",
    "Term_Completed": "Fall18",
    "Course_Grade": "C-"
},
{
    "Course_Code": "CIS341",
    "Course_Comp": "Y",
    "Term_Completed": "Fall19",
    "Course_Grade": "A-"
}

В таблице учебного плана есть 13 Course_Codes, и это только возвращает 5.

Некоторое время боролся с этим. Любая помощь с благодарностью.

...