CI 묻고 답하기

제목 join문 질문이요..
글쓴이 슈퍼개미 작성시각 2009/12/30 00:00:30
댓글 : 6 추천 : 0 스크랩 : 0 조회수 : 22720   RSS

안녕하세요.. 이번엔 join문이요..

사용을 하다보니 join문이 있어서 사용을 하려고 했습니다.

그런데 FIELD가 한글로 되어있어서 그런가 오류가 나더군요... 방법이 없을까요?

사용한방법은
 $this->db->select('count(test1.일련번호) as count');
 $this->db->join('test2, 'test1.일련번호 = test2.일련번호', 'left');
 $this->db->where('test1.일련번호 >=',100');
 $query = $this->db->get('test1');

에러내용은
 Error Number: 1064

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'test1`.`일련번호` WHERE `test1`.`일련번호` >= 100' at line 3

SELECT count(test1.일련번호) as count FROM (`test1`) LEFT JOIN `test2` ON `test1`.`일련번호 = `test2`.`일련번호` WHERE `test1`.`일련번호` >= 100

감사합니다.
 

 다음글 CI 세상님 질문 하나 드려도 될까요? (1)
 이전글 .htaccess 설정에 대해서 질문드립니다. (4)

댓글

슈퍼개미 / 2009/12/30 00:18:31 / 추천 0
문제는 찾았습니다.
ON `test1`.`일련번호 = `test2`.`일련번호`
중 `test1`.`일련번호 뒤에 ` 가 안없네요
`test2`.`일련번호` 뒤에는 있는데.. 왜그럴까요..
한글이라 바이트문제인가요?
변종원(웅파) / 2009/12/30 00:27:37 / 추천 0

테이블명 또는 필드명에 ` 를 사용하도록 권장하는 걸로 알고 있습니다.
quote로 싸인 한글필드명이라 에러가 나는 것 같습니다. 필드명을 영어로 바꾸고 해보시면
에러가 나는 이유가 명확해질 것 같네요.

슈퍼개미 / 2009/12/30 00:40:52 / 추천 0

영문으로놓고 테스트해보니 잘 되는군요.
근데 한글을 써야하는데 어떻게 해야하나요?
방법이 없을까요?

변종원(웅파) / 2009/12/30 10:33:11 / 추천 0
액티브레코드 사용은 힘드실것 같구요.

$sql = "..... 한글";
$this->db->query($sql);
형식으로 이용하시면 가능할 것 같습니다.
byung82 / 2009/12/30 19:44:48 / 추천 0
 
일련번호 앞에 
"일련번호"
이렇게 설정해서 한번 해보시기 바랍니다. 
 
소울펨 / 2010/01/05 17:01:59 / 추천 0
사용한 방법에서 각 테이블 마다 별명을 제대로 지정 안하신듯... 그냥 생각이에요 갑자기 들리게 되어서 저도 무지 ㅜㅜ 고생중 몰라서