Нарушение ограничения целостности: 1052 Столбец 'субъект' в том, где предложение является неоднозначным - PullRequest
0 голосов
/ 11 апреля 2020

Я пытаюсь получить результат для указанных c предмета, теста и студента, но у меня возникла вышеуказанная ошибка. До сих пор я пробовал эту вещь и получил вышеуказанную ошибку.

 $result = DB::table('results')
    ->where([
        ['subject',$request->subject],
        ['test',$request->test],
        ['user_id',$request->name]
    ])
     ->join('users','results.user_id','=','users.name')
    ->join('tests','tests.id','=','results.test')
    ->join('subjects','subjects.id','=','results.subject')
    ->select('results.*','users.name','tests.test_name','subjects.subjects')
    ->get();

1 Ответ

1 голос
/ 11 апреля 2020

Обе таблицы subjects и results имеют столбец с именем results, поэтому ошибка MySQL говорит о том, что база данных не уверена, какую из них вы хотите выбрать. Вы можете попробовать:

->where([
    ['subjects.subject', $request->subject],
    ['test', $request->test],
    ['user_id', $request->name]
])

Обратите внимание, что такая же проблема существует в предложении select. Возможно, вы захотите использовать псевдоним subjects.subjects как-нибудь еще, например

->select('results.*', 'users.name', 'tests.test_name',
         'subjects.subjects AS s_subjects')
...