CI 묻고 답하기

제목 join을 한 두 테이블이 같은 column을 가지고 있을때 처리 문제입니다.
글쓴이 roy 작성시각 2013/09/26 14:08:46
댓글 : 5 추천 : 0 스크랩 : 0 조회수 : 13498   RSS

Active Record를 사용하여 두 테이블을 join하는데 두개의 테이블에 동일한 이름의 column이 있을때, 현재는 A join B인 경우 B의 것으로 덮어 쓰게 되어있습니다. 이 문제에 대한 해결을 찾아보니 A.name a_name, B.name b_name 으로 alias 하는 것 밖에 나오지 않더군요.

하지만, 이렇게 되면 쿼리를 만들때, 두 테이블에 동일한 이름의 column이 있는지 매번 확인해야합니다. 게다가 만일 동일한 이름의 column이 많다면 줄줄이 select에 다 적어줘야 하고요.

이 문제를 해결하는데 alias 보다 더 간단하고 스마트한 방법이 없을까요?


 다음글 죄송합니다 다시 질문 좀 드리까합니다. (6)
 이전글 output 클래스를 이용할시 HTTP Header가 ... (4)

댓글

한대승(불의회상) / 2013/09/26 14:43:44 / 추천 0
간단하지만 무식한 모든 컬럼에 테이블명 달기가 있습니다.
roy / 2013/09/26 14:45:07 / 추천 0
한대승 // 그것은 왠만하면 피하고 싶습니다 ㅜㅜ
변종원(웅파) / 2013/09/26 15:01:55 / 추천 0
필요하지 않은 항목은 가져오지 않고 일일이 항목명을 기술하는지라
어쩌다 한번 발생할까 말까합니다.

일일이 기술하다 보면 join 거는 테이블의 항목들을 볼 수밖에 없구요.

ci 순정(?)으로는 alias 이외에 방법이 없을 것 같네요.
한대승(불의회상) / 2013/09/26 15:02:06 / 추천 0
반환되는 열의 컬럼명을 배열명으로 하고 있는 PHP의 특성상 Alias 외에는 대안이 없어 보입니다.
roy / 2013/09/26 15:04:05 / 추천 0
 
네, 그렇군요. 두 분 고맙습니다~