我試圖使用laravel5.1 join()方法,但我得到這個錯誤:加盟laravel三個表和排序依據得到一個錯誤
QueryException in Connection.php line 666: SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'id' in where clause is ambiguous (SQL: select * from
quizzes
inner joinquestion_numbers
onquestion_numbers
.quiz_id
=quizzes
.id
andquestion_numbers
.question_id
=multiple_choice
.id
inner joinmultiple_choice
onmultiple_choice
.id
=question_numbers
.question_id
whereid
= 1)
我這裏有三個表,我想加入這三張表。我想首先是要得到一個測驗where
ID =
到一個特定的ID,然後加入表question_numbers
其中question_numbers.quiz_id
是=
到quiz.id
再加入表multiple_choice
where
multiple_choice.id
是=
question_numbers.question_id
和where
question_numbers.question_type
=
multiple_choice
。
我有什麼:
$quiz = DB::table('quizzes')->where('id', $id)
->join('question_numbers', function($join){
$join->on('question_numbers.quiz_id', '=', 'quizzes.id')
->on('question_numbers.question_id', '=', 'multiple_choice.id');
})
->join('multiple_choice', 'multiple_choice.id', '=', 'question_numbers.question_id')
->get();
dd($quiz);
現在,我得到這個錯誤** QueryException在Connection.php行666:SQLSTATE [42S22]:列未找到:1054未知列「測驗。 id'in'on clause'(SQL:select * from'quizzes' as'q' inner join'question_numbers' on'question_numbers'.'quiz_id' ='quizzes'.'id' and'question_numbers'.'question_id' = 'multiple_choice'.'id' inner join'multiple_choice' on'multiple_choice'.'id' ='question_numbers'.'question_id' where'q'.'id' = 1)** – Jonjie
檢查我的編輯。我修正了'$ join-> on('question_numbers.quiz_id','=','t.id')'讓我知道它正在工作或沒有? –
現在,我收到了另一個不同的錯誤:** QueryException在Connection.php行666:SQLSTATE [42S22]:未找到列:1054'on子句'中的未知列'multiple_choice.id'(SQL:select * from 'quizzes' as'q'內連接'question_numbers'在'question_numbers'.'quiz_id' ='q'.''''和'question_numbers'.'question_id' ='multiple_choice'.'id'內連接'multiple_choice' on 'multiple_choice'.'id' ='question_numbers'.'question_id' where'q'.'id' = 1)** – Jonjie