본문 바로가기
MySql

MySQL mysql codeigniter에서 3 개의 테이블 조인

by 베이스 공부 2021. 2. 3.
반응형

내 데이터베이스에 3 개의 테이블이 있습니다.

role_id, id, id 는 해당 테이블의 기본 키입니다. 난 필요해 :-

여기서 tbl_tickets_replies ticket_id = $ ticket_id 가 매개 변수로 제공됩니다.

내 모델 기능은 다음과 같습니다.

function fetch_comments($ticket_id){
        $this->db->select('tbl_tickets_replies.comments,tbl_users.username,tbl_roles.role_name');
        $this->db->where('tbl_tickets_replies.ticket_id',$ticket_id);
        $this->db->from('tbl_tickets_replies');
        $this->db->join('tbl_users','tbl_users.id = tbl_tickets_replies.user_id');
        $this->db->join('tbl_roles','tbl_roles.role_id=tbl_tickets_replies.role_id');
        $comments = $this->db->get('tbl_tickets_replies');
        return $comments;
     }

이것은 데이터베이스 오류를 보여줍니다. 즉, 잘못된 쿼리를 수행하고 있습니다. 3 개의 테이블을 조인하여 3 개의 다른 테이블에서 데이터를 가져 오는 방법을 묻고 싶습니다.

이 오류는 다음을 표시합니다.

데이터베이스 오류가 발생했습니다.
오류 번호 : 1066

고유하지 않은 테이블 / 별칭 : 'tbl_tickets_replies'

SELECT tbl_tickets_replies . comments , tbl_users . username , tbl_roles.role_name FROM (tbl_tickets_replies, tbl_tickets_replies) JOIN tbl_users ON tbl_users.id = tbl_tickets_replies.user_id JOIN tbl_roles ON tbl_roles.role_id=tbl_tickets_replies.role_id WHERE tbl_tickets_replies . ticket_id = '6'

파일 이름 : C : \ wamp \ www \ local.helpdesk.com \ bonfire \ codeigniter \ database \ DB_driver.php

라인 번호 : 330`

 

해결 방법

 

tbl_tickets_replies 를 두 번 참조하고 있습니다. 이 시도:

function fetch_comments($ticket_id){
    $this->db->select('tbl_tickets_replies.comments, 
           tbl_users.username,tbl_roles.role_name');
    $this->db->where('tbl_tickets_replies.ticket_id',$ticket_id);
    $this->db->join('tbl_users','tbl_users.id = tbl_tickets_replies.user_id');
    $this->db->join('tbl_roles','tbl_roles.role_id=tbl_tickets_replies.role_id');
    return $this->db->get('tbl_tickets_replies');
}

 

참조 페이지 https://stackoverflow.com/questions/11524752

 

 

반응형

댓글