MySQL에서 Join 시 중복 컬럼명 PHP에서 처리하기
PHP로 프로그램 작성시 MySQL 연동에서 Join 시 중복 컬럼명을 처리하는 것이 애매합니다.
예를 들면,
table1 이 a, b,c 세개의 컬럼(필드)로 구성되어 있고
table2 가 a, d, e 로 구성되어 있다고 가정합니다.
위 테이블 조건에서 아래와 같은 쿼리문을 실행합니다.
select * from table1 as A join table2 as B on A.a = B.a where A.b='서울';
이때, 컬럼a가 table1의 a인지 table2의 a인지를 구분해야할 경우가 생깁니다.
MySQL 쿼리 상에서는 alias를 줘서 A.a 또는 B.a로 구분이 가능합니다.
테이블
그런데, 이야기를 PHP로 옮겼을때 문제가 생깁니다.
$row = mysql_fetch_array($result);
echo $row["a"];
이런 경우 어떤 테이블의 a가 출력되는가도 고민이지만, 특정 테이블의 a를 출력하고 싶을 때 어떻게 지정해야 합니까?
물론, $row[0], $row[3] 등과 같이 숫자로 지정하면 되지만, 현실적으로 사용하기 좀 그렇습니다.
결론은, 다시 쿼리문을 돌려야 합니다.(제 의견입니다.)
만일 위 쿼리문의 결과중에 table2(B)의 a를 출력하고 싶다면?
이 경우에도 조인문은 꼭 써야 합니다. 왜냐하면, 조건문을 넣어야 하니까요. (서울이라는 조건)
그런데, 출력에서 컬럼이 모호해지므로, 해당 조건으로 해당 테이블에만 다시 쿼리를 돌려서 해당 컬럼을 출력하는 방법이 가장 간단한 것 같습니다.
일단 조인이 들어 있는 쿼리문을 돌리고, 값을 받아 출력하고 싶은 테이블에 대해 다시 쿼리를 돌려야 하는 것이죠.
'홈페이지제작' 카테고리의 다른 글
빨리 뜨는 홈페이지제작 (0) | 2012.07.04 |
---|---|
심부름센터 퀵서비스 홈페이지제작 시안 (0) | 2012.07.03 |
카센터 홈페이지제작 시안 (0) | 2012.07.01 |
계정 사용량 알아보기(PHP) (0) | 2012.06.29 |
대출회사 홈페이지제작 (0) | 2012.06.17 |