| 제목 | [초보]조인할 경우에 어케 하나요? | ||
|---|---|---|---|
| 글쓴이 | 헛발이 | 작성시각 | 2010/02/10 16:05:22 | 
|  | |||
| 이럴 경우에 처리 하는 방법이 있나요? 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
                             | 
| 
                                슈퍼개미
                                /
                                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');
 | 
일반 쿼리에서도 그렇게 쓸 방법이 없을겁니다.
$this->db->select('test1.name as name1, test2,name as name2');
이렇게 쓰시면 됩니다.