2012-11-14 3 views
0

codeigniter에서 4 개의 테이블과 상호 작용하고 싶습니다. 나는 시도했지만 아무런 결과도주지 않았다. 내 테이블 모양은 다음과 같습니다.SQL 또는 codeigniter에서 여러 테이블과 상호 작용하는 방법은 무엇입니까?

----university----  ----------department---------- -------language-------- 
| id | name  |  | id |   name   | | id | name  | 
------------------  ----------------------------  ----------------------- 
| 1 | Oxford |  | 1 | Computer Engineering | | 1 | English  | 
| 2 | Harvard |  | 2 | International Affairs | | 2 | German  | 

이 테이블의 행은 예제 일뿐입니다. 제 4 번째 테이블에는 다른 테이블에 대한 데이터가 들어 있습니다.

--------------------------result---------------------------- 
    | result_id | university_id | department_id | language_id | 
    ------------------------------------------------------------ 
    | 1  | 4   |  6  |  8  | 
    | 2  | 4   |  7  |  4  | 

언어 ID = 2 인 동시에 같은 대학 이름, 부서 이름 및 언어로 표시하고 싶습니다. 그 코드를 시도했지만 어떤 결과를하지 않았다 : 그것은 3 개 가지 질의를하고 모든 병합하려고 작동하지 않는 경우

$this->db->select('university.name,department.name,language.name'); 
$this->db->from ('university'); 
$this->db->from ('department'); 
$this->db->from ('language'); 
$this->db->join ('result', 'result.university_id = university.id', 'inner'); 
$this->db->join ('result', 'result.department_id = department.id', 'inner'); 
$this->db->join ('result', 'result.language_id = language.id', 'inner' ); 
$this->db->where('result.language_id', '2'); 
$this->db->order_by('department.name', 'asc'); 

$query = $this->db->get(); 

return $query->result();  

답변

1

시도가 구조를

$this->db->select('university.name,department.name,language.name'); 
$this->db->from ('university'); 
$this->db->join ('result', 'result.university_id = university.id', 'inner'); 
$this->db->from ('department'); 
$this->db->join ('result', 'result.department_id = department.id', 'inner'); 
$this->db->from ('language'); 
$this->db->join ('result', 'result.language_id = language.id', 'inner' ); 

$this->db->where('result.language_id', '2'); 
$this->db->order_by('department.name', 'asc'); 

$query = $this->db->get(); 

return $query->result(); 

/가입에서 만들기를!

관련 문제