programing

레프트 아우터가 라라벨과 합류하는 방법은?

powerit 2023. 10. 20. 14:51
반응형

레프트 아우터가 라라벨과 합류하는 방법은?

나는 한 테이블의 정보와 다른 테이블의 정보가 일치하는지 또한 원합니다.

이것이 나의 코드입니다.

 $scoreObject = DB::table('responses')
        ->select('responses.id', 'responses.questions_id', 'responses.answer_id', 'responses.open_answer', 'responses.user_id',  'responses.scan_id',
             'questions.question', 'questions.question_nr', 'questions.type', 'questions.totalsection_id',
            'answers.id as answerID', 'answers.answer', 'answers.questions_id', 'answers.points'
        )
        ->Join('answers as answers', 'responses.answer_id', '=', 'answers.id')
        ->Join('questions as questions', 'answers.questions_id', '=', 'questions.id')
        ->orderBy('questions.id', 'ASC')
        ->where('responses.scan_id', $scanid)
        ->where('responses.user_id', $userid)
        ->groupBy('questions.id')
        ->get();

답변(답변)과 일치하는 모든 답변을 반환합니다.questions_id questions.id '). 일부 응답이 일치하지 않지만(응답이 없기 때문에. answer_id), 나는 여전히 응답 정보를 원합니다.

라라벨에서 어떻게 그렇게 왼쪽 바깥쪽 조인을 얻을 수 있습니까?

조인을 왼쪽 외부 조인으로 지정할 수 있습니다.

->join('answers as answers', 'responses.answer_id', '=', 'answers.id', 'left outer')

join method의 네 번째입니다.$type, 지정되지 않으면 기본값으로 설정됩니다.inner. 하지만 왼쪽 조인왼쪽 아우터 조인같은 것이기 때문에 그냥 사용하시면 됩니다.leftJoinmethod 대신 읽기 쉽게 하기 위해:

->leftJoin('answers as answers', 'responses.answer_id', '=', 'answers.id')

언급URL : https://stackoverflow.com/questions/28481321/how-to-do-a-left-outer-join-with-laravel

반응형