BLOG main image
개발괴발's Blog
개발괴발





MySQL에서 Join 시 중복 컬럼명 PHP에서 처리

홈페이지제작 2012. 7. 3. 09:16 by 개발괴발 | 세상의 모든 정보 | hotrain@hanmail.net

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를 출력하고 싶다면?

이 경우에도 조인문은 꼭 써야 합니다. 왜냐하면, 조건문을 넣어야 하니까요. (서울이라는 조건)

그런데, 출력에서 컬럼이 모호해지므로, 해당 조건으로 해당 테이블에만 다시 쿼리를 돌려서 해당 컬럼을 출력하는 방법이 가장 간단한 것 같습니다.

일단 조인이 들어 있는 쿼리문을 돌리고, 값을 받아 출력하고 싶은 테이블에 대해 다시 쿼리를 돌려야 하는 것이죠.


 
 

카테고리

분류 전체보기 (239)
홈페이지제작 (61)
사진 (53)
일반 (9)
발자국 (58)
경기도 광명 (18)

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

달력

«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

글 보관함