2013-03-04 2 views
2

안녕하세요 모두 저는 codeigniter에 새로 왔으며 현재 프로젝트의 작은 프로젝트에서 두 테이블을 조인하고 단일 테이블에 데이터를 표시하려고합니다. 나는이 작품codeigniter는 2 테이블 데이터를 합칩니다.

$this->db->join();

어떤 테이블 먼저해야하고 무엇 아이디 키 전나무 어떻게해야 확실하지 오전을 가지고 CodeIgniter는 사용자 설명서를 바라 보았다. 좀 더 자세히 설명해 주실 수 있습니까? 나는 자격증 명 테이블과 tblanswers에 참여하려고합니다. 응답을위한 Tnx.

난이 예를 이용하여 함수를 코딩하는 시도 :

$this->db->select('*'); 
$this->db->from('blogs'); 
$this->db->join('comments', 'comments.id = blogs.id'); 

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

EDIT : 대신 CodeIgniter의 메소드 별도로 두 개의 테이블 데이터를 검색하는 간단한 함수를 사용하는 것이 가능하다 합류하여? 모두 내가 원하는 데이터베이스 테이블에서 내 웹 사이트 페이지에 html 테이블에 데이터를 에코 표시하는 것이 가능합니다 두 개의 테이블을 별도로 검색하는 두 가지 함수를 작성할 수 있습니까?

+0

모델에 두 개의 메소드를 만들고 각 메소드는 원하는 쿼리를 수행 할 수 있습니다. –

답변

7

그것은 중요하지 않습니다 첫 번째 또는 두 번째 값의 위치가 중요하지 않다 처음으로 어떤 테이블 ... 간단히 :

<?php 

$this->db->select('t1.name, t2.something, t3.another') 
    ->from('table1 as t1') 
    ->where('t1.id', $id) 
    ->join('table2 as t2', 't1.id = t2.id', 'LEFT') 
    ->join('table3 as t3', 't1.id = t3.id', 'LEFT') 
    ->get(); 
?> 
1
$this->db->join('comments', 'comments.id = blogs.id'); 

이 줄을 사용하면 다음과 같이 말할 수 있습니다. 내 안에있는 검색 내 의견 ID가있는 모든 의견 동등한 blogs.id.

$this->db->join('comments', 'comments.blogs_id = blogs.id'); 

당신은 블로그 더 많은 의견을 가질 수 있기 때문에 테이블 blogs_id라는 이름의 필드 (unisgned int 값)에 삽입해야합니다 :

보통 내가 생각 같은 것입니다. 이

+0

그래서 두 테이블 데이터의 ID가 같은 경우에만 조인이 작동합니까? 예를 들어 tblanswers는 ID가 12이고 자격증 명이 ID가 12 –

+0

인데 그렇습니다. 올바른 경우 –

+0

ID가 중복되면 ID가 중복되면 데이터베이스에 대해 알 수 없습니까? –

0

안녕하세요이 codeIgnator에 두 개의 테이블을 조인을 위해 작동합니다.

$this->db->select("chat.id,chat.name,chat.email,chat.phone,chat.date,post.post"); 
     $this->db->from('chat'); 
     $this->db->join('post', 'chat.id = post.id'); 
     $query = $this->db->get(); 

    if($query->num_rows() != 0) 
    { 
     return $query->result(); 
    } 
    else 
    { 
     return false; 
    } 

적절한 결과를 얻기 위해 원하는대로 추적 코드 및 오류 방법을 변경할 수 있습니다.

관련 문제