CI 묻고 답하기

제목 [초보]조인할 경우에 어케 하나요?
글쓴이 헛발이 작성시각 2010/02/10 16:05:22
댓글 : 2 추천 : 0 스크랩 : 0 조회수 : 20968   RSS
이럴 경우에 처리 하는 방법이 있나요?

test1테이블의 필드는
id, name

test2테이블의 필드는
id, test1_id, name

이렇게 되어 있습니다. 그래서 모델에서...
$this->db->select('*');
$this->db->from('test1');
$this->db->join('test2', 'test1.id = test2.test1_id');
$query = $this->db->get();
이렇게 하였을 때요..

test1의 name과 test2의 name과 필드명이 같잖아요...
그런데 뷰에선 그냥 $data['test1']['name'] 이렇게 할 방법은 없나요?
 다음글 글 내용중 eval(), base64_encoding(... (5)
 이전글 위젯은... (1)

댓글

변종원(웅파) / 2010/02/10 20:57:16 / 추천 0

일반 쿼리에서도 그렇게 쓸 방법이 없을겁니다.

$this->db->select('test1.name as name1, test2,name as name2');

이렇게 쓰시면 됩니다.

슈퍼개미 / 2010/02/23 20:51:08 / 추천 0
 function using($table, $cond, $type = '')
	{		
		if ($type != '')
		{
			$type = strtoupper(trim($type));

			if ( ! in_array($type, array('LEFT', 'RIGHT', 'OUTER', 'INNER', 'LEFT OUTER', 'RIGHT OUTER')))
			{
				$type = '';
			}
			else
			{
				$type .= ' ';
			}
		}

		// Extract any aliases that might exist.  We use this information
		// in the _protect_identifiers to know whether to add a table prefix 
		$this->_track_aliases($table);       
        $cond = $this->_protect_identifiers($cond);
		
		// Assemble the JOIN statement
		$join = $type.'JOIN '.$this->_protect_identifiers($table, TRUE, NULL, FALSE).' USING ('.$cond.')';
       
		$this->ar_join[] = $join;
		if ($this->ar_caching === TRUE)
		{
			$this->ar_cache_join[] = $join;
			$this->ar_cache_exists[] = 'join';
		}

		return $this;
	}
저는 join을 수정해서 추가사용했습니다. join할 이름이 같다면...
$this->db->using('테이블이름','동일필드이름','조인명');
$this->db->using('test1,'field','left');