CI 묻고 답하기

제목 서로 다른 DB의 JOIN
글쓴이 Peter 작성시각 2012/12/28 11:27:21
댓글 : 8 추천 : 0 스크랩 : 0 조회수 : 22851   RSS
안녕하세요.

딱히 찾는 답이 안나와 이렇게 질문 올립니다.

DB가 다른 상태에서 JOIN을 하려면 어떻게 해야 하나요?
(DB명은 틀리지만 물리적으로는 같은 서버에 있습니다)

현재 액티브 레코드를 이용해서 구축중인데 매뉴얼을 봐도 서로 다른 DB의 JOIN에 대해서는 언급이 없네요.

고수님들의 의견 부탁드립니다.
 다음글 컨트롤러에서 한글을 쓰면 깨지는데.. (1)
 이전글 [초보] 항시 로그인을 체크해야할 때 (8)

댓글

criuce / 2012/12/28 11:35:20 / 추천 0
DB를 분리하면 생기는 단점이 join을 사용할 수 없다는겁니다.ㅠㅠ
변종원(웅파) / 2012/12/28 12:27:11 / 추천 0
db명.테이블명 안될랑가요? 갑자기 헷갈리네요.
Peter / 2012/12/28 14:30:18 / 추천 0
criuce // 으악 그런건가요!!!
Peter / 2012/12/28 14:31:27 / 추천 0
웅파// 네, 해당 계정에 다른 DB 에 접속할 수 있게 권한도 줘봤는데 안되네요. 구글에서 찾아보니 "그렇게 하면 안되고 표준 SQL 코딩으로 해야 할껄?" 뭐 이런 말은 있긴 하던데... 당최 해결이 안되네요.
변종원(웅파) / 2012/12/28 16:39:11 / 추천 0

Peter/ Federated Engine 이용해보세요. oracle의 link와 동일한 것입니다.
이걸로 작은 규모의 SSO 구현한 적이 있습니다.

벤지 / 2012/12/31 00:02:46 / 추천 0
제가 본글을 잘못 이해 한건지 모르겠지만
물리적으로 같은 서버에 존재하는 DB 에 대해서
Join 이 가능합니다.

http://nathan.rambeck.org/blog/2-joining-mysql-tables-across-multiple-databases
한대승(불의회상) / 2012/12/31 00:19:24 / 추천 0
벤지// 정확한 지적 이십니다. ^^
Peter// CI에서는 아래 처럼 하시면 됩니다.

$sql = "select name from db1.member m join board b on m.member_id = b.member_id where m.member_id = ? limit 10";

$rs=$this->db->query($sql, array(123));

변종원(웅파) / 2012/12/31 10:49:00 / 추천 0
되는걸로 알고 있었는데 안된다고 해서 헷갈렸네요. ㅋ